給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
輸入: s = 「anagram」, t = 「nagaram」分別建立雜湊表,然後給對應位置的字母計數,get函式中的0是預設值,當元素不存在時,初始化為0輸出: true
輸入: s = 「rat」, t = 「car」
輸出: false
第二個做法是自己建立了乙個26位的陣列,ord函式是獲取字母的ascii碼,減去a就是對應【0-25】個數字,然後在之前建立的26位陣列中進行計數
#使用內建dict來做雜湊表
class
solution
:def
isanagram
(self, s:
str, t:
str)
->
bool
: s_dict =
t_dict =
for i in s:
s_dict[i]
= s_dict.get(i,0)
+1for i in t:
t_dict[i]
= t_dict.get(i,0)
+1return s_dict == t_dict
# 自己建立了hash table
class
solution
:def
isanagram
(self, s:
str, t:
str)
->
bool
: s_dict =[0
]*26 t_dict =[0
]*26for i in s:
s_dict[
ord(i)
-ord
('a')]
+=1for i in t:
t_dict[
ord(i)
-ord
('a')]
+=1return s_dict == t_dict
復 雜度
分析
:\color
複雜度分析:
時間複雜度:o(n)
空間複雜度:o(1)
Leetcode 242 有效的字母異位
time 20190901 type easy 給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。高階 如果...
LeetCode 242 有效的字母異位
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的字母異位詞。說明 你可以假設字串只包含小寫字母。高階 如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?思路 兩個字串長度不等,則不滿足。兩個字串相等,則滿足。定義兩個陣列,分別記錄s和t中每個字母出現的次...
LeetCode242有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。例如,s anagram t nagaram 返回 true s rat t car 返回 false 注意 假定字串只包含小寫字母。兩個int型陣列,sarray和tarray,來儲存s和t字串中的字元情況,a對應陣列...