Problem
Given an array of strings, group the words have the same letter-set together.
Algorithm
Use a sorted list to identify the words whether in the same set, and then use this list as a hash to make a 2-dimension list save the words making the same set together.
Code
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
ans = []
ordered_word_list = []
index = 0
sLen = len(strs)
for i in range(sLen):
ordered_word = "".join((lambda x:(x.sort(),x)[1])(list(strs[i])))
find = 0
for j in range(index):
if ordered_word == ordered_word_list[j]:
find = 1
ans[j].append(strs[i])
if find == 0:
ordered_word_list.append(ordered_word)
ans.append([strs[i]])
index += 1
return ans