題目:給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
輸入: s =
"anagram", t =
"nagaram"
輸出: true
輸入: s =
"rat", t =
"car"
輸出: false
collections.defaultdict(int): 訪問dict中不存在的key值不報錯,預設值為0
class
solution
:def
isanagram
(self, s:
str, t:
str)
->
bool
: dict_value = collections.defaultdict(
int)
iflen
(s)!=
len(t)
:return
false
for i in
range
(len
(s))
: dict_value[s[i]]+=
1 dict_value[t[i]]-=
1for i in dict_value:
if dict_value[i]!=0
:return
false
return
true
class
solution
:def
isanagram
(self, s:
str, t:
str)
->
bool:if
len(s)
!=len
(t):
return
false
counts =[0
]*26for a in s:
counts[
ord(a)
-ord
("a")]
+=1for b in t:
# 說明兩個不一樣
if counts[
ord(b)
-ord
("a")]
<=0:
return
false
counts[
ord(b)
-ord
("a")]
-=1return
true
set 的內建優化和特性減少運算,以及使用布林運算提高效率
class
solution
:def
isanagram
(self, s:
str, t:
str)
->
bool:if
len(s)
!=len
(t):
return
false
se =
set(s)
if se ==
set(t)
:for i in se:
# 直接比較字元元素個數比較字元的個數
if s.count(i)
!= t.count(i)
:return
false
return
true
else
:return
false
242 有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true示例 2 輸入 s rat t car 輸出 false說明 你可以假設字串只包含小寫字母。class solution object def isa...
242 有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。示例 1 輸入 s anagram t nagaram 輸出 true 示例 2 輸入 s rat t car 輸出 false 說明 你可以假設字串只包含小寫字母。class solution def isanagra...
242 有效的字母異位詞
給定兩個字串 s 和 t 編寫乙個函式來判斷 t 是否是 s 的乙個字母異位詞。輸入 s anagram t nagaram 輸出 true輸入 s rat t car 輸出 false方法1 類似雜湊 還是重複問題 首先需要明白題的意思,其實就是比較兩個字串中字母是否相同,在相同的情況下比較該字元...