注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
[如果覺得對您有幫助,可以贊助大米,給大米不扣您的分]
剛剛面試完的題目,
趁著記憶猶新,趕快來分享給地理小朋友。
這位面試官ODE_0 ]
- # N : num of words
- # time complexity: O(N * M lg M (M: len of the word) )
- # space O(N)
- # time complexity for iterating a hash map
- # [1, 2, 3, 4] hash set
- def group_anagrams(word_list):
- # Validate input later
- if not word_list:
- return []
-
-
- # map to hold anagrams. Key: String , Values: Array
- anagrams_mapping = dict()
- output = []
- keys = set()
-
-
- # Scan each word from the input list
- for w in word_list:
- key = "".join(sorted(w))
- keys.add(key)
- if key in anagrams_mapping:
- anagrams_mapping[key].append(w)
- else:
- anagrams_mapping[key] = [w]
-
- # output the results O(N)
- # for key in map:
- # map[key]
-
-
- # for key, anagrams in anagrams_mapping.items():
- for key in keys:
- output.append(anagrams_mapping[key])
-
- return output
- word_list = ["eat", "tea", "tan", "ate", "nat", "bat"]
- print(group_anagrams(word_list))
- print(group_anagrams([]))
- print(group_anagrams(None))
复制代码
|