题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
本题难点在换顺序的判断处,我一开始用的代码是: if ''.join(sorted(word)) == target_word: 结果用例3/10通过,之后盘查半天也找不到原因,最后改为: if sorted(word) == sorted(target_word): 然后就通过了。 这个为什么前者不行呢?有人知道的话可以评论一下。 然后说一下这道题的思路: 1、先将输入的字符串分类整理 2、直接遍历,判断单词是否符合要求(换了顺序后等于目标单词 且 不换顺序不等于目标单词) 3、如果符合要求,就将该单词加入到一个列表中(比如dict_list) 4、最后将dict_list排序,然后统计数量,如果数量大于k就输出第k个单词(注意第k个是dict_list[k-1]) while True: try: inputstring = input().split(' ') n = int(inputstring[0]) k = int(inputstring[-1]) target_word = inputstring[-2] dict_list = [] for word in inputstring[1:-2]: if sorted(word) == sorted(target_word): #if ''.join(sorted(word)) == target_word: #word换顺序后和target一样,有可能是兄弟 if word != target_word: #确定是兄弟 dict_list.append(word) #加入到dict中 count = len(dict_list) if count >= k: #记得题意中说的分类讨论 last_dict = sorted(dict_list) print(count) print(last_dict[k - 1]) else: print(count) except: break