'''
leetcode 49. 字母異位詞分組
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。
演算法1: 根據字典序排序後相同的兩個字串是字母異位詞
將字串陣列中的每個字串進行排序,排序後相同的字串被分到相同的組別
演算法在輸入規模較大的情況下超時
演算法2:對於字串列表中的每個字串,統計小寫字母字元出現的個數,即為每個字串統計雜湊表
雜湊表相同的字串是字母異位詞,這樣的好處是不用對字串排序
'''class solution:
def groupanagrams(self, strs):
if len(strs)<=1:
return [strs]
result=
temp={} # 字典,鍵表示字串的雜湊表(列表結構),值是列表,表示雜湊表相同的字串的集合
for string in strs:
temp_item=[0 for _ in range(26)]# 當前字串的雜湊表
for c in string:
temp_item[ord(c)-ord('a')]+=1
# print(temp_item,string)
if tuple(temp_item) in temp:
else:
temp[tuple(temp_item)]=[string]
for k,v in temp.items():
return result
if __name__=="__main__":
print(solution().groupanagrams(["eat", "tea", "tan", "ate", "nat", "bat"]))
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 說明 此題輸入的是乙個字串陣列,遍歷該陣列,然後將每個字串排序,排序後的字串作為 鍵 存入雜湊表,對應的...