leetcode 49 字母異位詞分組

2021-09-24 05:45:31 字數 914 閱讀 6722

'''

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 說明 此題輸入的是乙個字串陣列,遍歷該陣列,然後將每個字串排序,排序後的字串作為 鍵 存入雜湊表,對應的...