题目描述
定义一个单词的“兄弟单词”为:交换该单词字母顺序,而不添加、删除、修改原有的字母就能生成的单词。
兄弟单词要求和原来的单词不同。例如:ab和ba是兄弟单词。ab和ab则不是兄弟单词。
现在给定你n个单词,另外再给你一个单词str,让你寻找str的兄弟单词里,字典序第k大的那个单词是什么?
注意:字典中可能有重复单词。本题含有多组输入数据。
输入描述:
先输入单词的个数n,再输入n个单词。
再输入一个单词,为待查找的单词x
最后输入数字k
输出描述:
输出查找到x的兄弟单词的个数m
然后输出查找到的按照字典顺序排序后的第k个兄弟单词,没有符合第k个的话则不用输出。
示例1
输入
3 abc bca cab abc 1
输出
2
bca
实现
while 1:
try:
line = input().strip().split()
x = line[-2]
k = int(line[-1])
n = line[1:-2]
count = 0
new = []
for index, i in enumerate(n):
if i != x and sorted(i) == sorted(x):
count += 1
new.append(i)
print(count)
print(sorted(new)[k-1])
except:
break
版权归原作者 看,月亮在跳舞 所有, 如有侵权,请联系我们删除。