異位詞判斷,python解法

2021-09-11 16:13:38 字數 1009 閱讀 8410

判斷兩個字串是否為異位詞,意思是判斷兩個字串有相同數量的字母。

input: s = "anagram", t = "nagaram"

output: true

input: s = "rat", t = "car"

output: false

有三種解法:

第一種最簡單:

先對s和t排序,再對比是否相等

def isanagram(self, s, t):

""":type s: str

:type t: str

:rtype: bool

"""return sorted(s) == sorted(t)

第二種使用雜湊表計數:

def isanagram(self, s, t):

dict1 = {}

dict2 = {}

for i in s:

if i in dict1:

dict1[i] += 1

else:dict1[i] = 1

for j in t:

if j in dict2:

dict2[j] += 1

else:dict2[j] = 1

遍歷乙個字串,看字母在不在雜湊表中,在的話就加1,不在就設定為1.

第三種使用列表實現雜湊表

def isanagram(self, s, t):

dic1,dic2 = [0]*26,[0]*26

for i in s:

dic1[ord(i) - ord('a')] += 1

for i in t:

dic2[ord(i) - ord('a')] += 1

return dic1 == dic2

先初始化列表,再用字母的ascii碼減去a的ascii碼,等到的列表index += 1,26字母對應0-25的索引值。

字母異位詞

描述 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 思路和 思路1 雜湊 class solution int lens s.size in...

字母異位詞

字母異位詞分組 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 方法一 排序陣列分類 維護乙個對映,key為字串中字元的最小字典序,value為排...

字母異位詞分組

超出時間限制 依次遍歷陣列中每乙個字串,與list中每乙個templist中的第乙個進行對比,如果長度不相等即為不合格,如果list走到了結尾,字串肯定不包含與list中,新增成為list中新的一員。如果與templist中一樣則為新增為templist中一員 但是超出時間限制 public lis...