一个更简单的做法:
while True:
try:
s = input().split(" ")
n = int(s[0])
k = int(s[-1])
sub_str = s[-2]
sum_str=[]
for item in s[1:-2]:
if item != sub_str and sorted(item)==sorted(sub_str):
sum_str.append(item)
print(len(sum_str))
if k<= len(sum_str):
print(sorted(sum_str)[k-1])
except:
break
利用字典来进行判断是否元素和个数相等,判断两个字典是否相等,可以直接: dic1==dic2
while True:
try:
s = input().split(" ")
n = int(s[0])
k = int(s[-1])
sub_str = s[-2]
sum_str=[]
dic_sub={}
for t in set(sub_str):
dic_sub[t]= sub_str.count(t)
for item in s[1:-2]:
if item != sub_str:
dic_new = {}
for t in set(item):
dic_new[t]=item.count(t)
if dic_new == dic_sub:
sum_str.append(item)
print(len(sum_str))
if k<= len(sum_str):
print(sorted(sum_str)[k-1])
except:
break
python数组删除元素的方法:
- DEL 删除法(index序列) del listname[index]
del listname[start:end] 2. pop(index),如果没有索引值,默认删除最后一个元素
- remove(object) 删除搜索到的第一个指定元素,如果列表中不包含这个元素,会返回错误