LeetCode 242 有效的字母異位詞

2022-06-22 05:06:08 字數 1343 閱讀 8302

給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。

示例 1:

輸入: s = "anagram", t = "nagaram"

輸出: true

示例 2:

輸入: s = "rat", t = "car"

輸出: false

對兩個字串進行排序,若滿足題目要求則其排序後定相等。

# 排序法 o(nlogn)

class solution(object):

def isanagram(self, s, t):

""":type s: str

:type t: str

:rtype: bool

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

即使使用最快的快排方法,時間複雜度也有o(nlogn)

根據定義,每個字串的中的每個字元的數量是相同的,所以,對每個字串進行雜湊計數,若兩個雜湊表相同,則返回 true ,python 中使用字典來實現雜湊表。

class solution2(object):

def isanagram(self, s, t):

""":type s: str

:type t: str

:rtype: bool

"""s_dict = {}

t_dict = {}

for item_s in s:

if item_s not in s_dict:

s_dict[item_s] = 1

else:

s_dict[item_s] += 1

for item_t in t:

if item_t not in t_dict:

t_dict[item_t] = 1

else:

t_dict[item_t] += 1

return s_dict == t_dict

上述**中包含了乙個非常典型的用法:判斷字典中是否有該鍵,沒有時將鍵加進去賦值,有時做另外處理。即:

if item_s not in s_dict:

s_dict[item_s] = 1

else:

s_dict[item_s] += 1

可以用一種更為簡單的寫法代替:

s_dict[item_s] = s_dict.get(item_s, 0) + 1

Leetcode 242 有效的字母異位

time 20190901 type easy 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果...

LeetCode242 有效的異位詞

給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整...

LeetCode 242 有效的字母異位

給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?思路 兩個字串長度不等,則不滿足。兩個字串相等,則滿足。定義兩個陣列,分別記錄s和t中每個字母出現的次...