HJ27_查找兄弟单词——哈希表查找

思路:

#先找出兄弟单词,按字典排序;输出第k个字典序单词,若没有则不用输出。

关键是理解题目兄弟单词的定义。可通过测试案例明确兄弟单词单词定义。如刚开始我的check,只是用set()检查是否含有相同字母;再增加用len()检查重复字母,再发现用哈希表计算不同字母出现次数,并对比哈希表。最后得出程序如下,该程序思路清晰。

 1 from collections import Counter
 2 a=input().split()
 3 m=a.pop(0)
 4 k=int(a.pop())
 5 tar=a.pop()
 6 l=[]
 7 def check(i,tar):
 8     dtar=Counter(tar) 
 9     if i!=tar:      
10         d=Counter(i)       
11         #print(d,dtar)
12         if d==dtar:   
13             return True
14 def bro(tar,a):    
15     for i in a:
16         if check(i,tar):
17             l.append(i)
18 bro(tar,a)
19 l.sort()
20 print(len(l))
21 if len(l)>k:    
22     print(l[k-1])
23 else:
24     pass

 

posted @ 2023-03-25 12:00  Aneverforget  阅读(62)  评论(0编辑  收藏  举报