3 abc bca cab abc 1
2 bca
6 cab ad abcd cba abc bca abc 1
3 bca
abc的兄弟单词有cab cba bca,所以输出3 经字典序排列后,变为bca cab cba,所以第1个字典序兄弟单词为bca
while True: try: s1=list(input().split()) #print(s1) n=int(s1[0]) k=int(s1[-1]) x=s1[-2] words=s1[1:-2] #print(n,k,x,words) list_brother=[] for i in words: if i!=x and sorted(i)==sorted(x): list_brother.append(i) list_brother.sort() if len(list_brother)>0: print(len(list_brother)) else: print(0) if k< len(list_brother): print(list_brother[k-1]) except: break
#大神Continue_Nine的代码,看完之后,发现结构清晰,原理明白,就自己很快通过了。 while True: try: ls = list(input().split()) # 将所有输入存储在列表ls中 n = int(ls[0]) # 获取输入单词的个数n ls.pop(0) # 从原列表中删除n k = int(ls.pop()) # 获取列表ls最后的值,即待查找的位置k(即删除最后的元素,存入k) # !!!这里注意k需要转换为整数类型!!! # 上面两步经过pop()方法的操作,得到更新后的列表ls。 # print(ls) x = ls[-1] # 获取更新后的列表ls中的最后一个值x # print(x) # 判断输入的n个单词是否是x的兄弟单词并存入列表lsn中 lsn = [] for i in range(n): if ls[i] != x and sorted(ls[i]) == sorted(x): lsn.append(ls[i]) # 接下来对lsn按字典顺序进行排序 lsn.sort() # print(lsn) # 最后输出结果 length = len(lsn) print(length) if k <= length: print(lsn[k-1]) except:break
相关推荐