在比较是否为兄弟单词时,用到的思路是(见代码注释):
try:
n = input()
n = n.split()
word_num = int(n[0])
word_list = n[1: word_num + 1]
x = n[-2]
k = int(n[-1])
brother = []
for i in word_list:
temp = x #用一个temp存放给定的单词x
if len(i) == len(temp): # 先判断长度是不是一样的,不一样直接换下一个,这样可以节省时间
for j in i: # 若长度相等,就对字母逐个比较,看是否在给定单词x里面
if j in temp:
temp = temp.replace(j, '', 1) #如果在x里面,则删掉一个该字符
if temp == '': #当所有的字母都删完了,说明这个就是兄弟单词
brother.append(i)
while x in brother:
brother.remove(x)
brother = sorted(list(brother))
print(len(brother))
print(brother[k - 1])
except:
break
本题踩坑的点主要是原来重复的单词也算作一个兄弟单词啊!!!如果不算的话,可以把w设为一个set,如果有重复,在w.add(i)的过程中就不会放入该重复兄弟单词~~