結構體 最終以結構體的思路用列表實現
def groupanagrams(self, strs):
""":type strs: list[str]
:rtype: list[list[str]]
"""tmplist= # tmplist用來儲存原字串和排序後的字串
littlelist= # littlelist用來儲存最終返回的列表中的小列表
ans= # ans用來儲存最後要返回的列表
for i in strs:
# wordlist是每個字串中的字母排序後的列表(對字串排序生成的是列表)
# 並將這個列表轉換成字串
# 將新生成的字串和原來的字串存入tmplist列表
wordlist=sorted(i)
newword=''
for j in wordlist:
newword=newword+j
# 對生成的tmplist列表排序 這樣包含相同字母的字串就會排列在一起
# 存在sortedtmp中 並在最後加上end作為結束標記
sortedtmp=sorted(tmplist)
# 對sortedtmp中的新字串進行判斷
# 若當前的新字串和前面的新字串一樣 代表這兩個列表的原字串包含的字母是一樣的 將他們加入同乙個列表littlelist
# 若當前的新字串和前面的新字串不同 代表這兩個列表的原字串包含的字母是不同的 將之前字母都相同的字串列表littlelist加入到ans中 並清空littlelist
for i in range(1,len(sortedtmp)):
if sortedtmp[i][0]==sortedtmp[i-1][0]:
else:
if sortedtmp[i]=='end':
break
littlelist=
return ans
以上**實現起來繁瑣
class solution:
def groupanagrams(self, strs: list[str]) -> list[list[str]]:
dict = {}
for item in strs:
key = tuple(sorted(item))
dict[key] = dict.get(key, ) + [item]
return list(dict.values())
item= eat
key= ('a', 'e', 't')
dict[key]= ['eat']
item= tea
key= ('a', 'e', 't')
dict[key]= ['eat', 'tea']
item= tan
key= ('a', 'n', 't')
dict[key]= ['tan']
最終的dict:
所以輸出的是dict.values()
LeetCode49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。設定乙個map向量,專門用來統計字串中,所有字元出現的...
LeetCode 49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。這道題的意思就是把含有相同字母的單詞歸類而已,思路其實...
LeetCode 49 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 此題輸入的是乙個字串陣列,遍歷該陣列,然後將每個字串排序,排序後的字串作為 鍵 存入雜湊表,對應的...