給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。
輸入: s =
"anagram"
, t =
"nagaram"
輸出:true
輸入: s =
"rat"
, t =
"car"
輸出:false
說明:
你可以假設字串只包含小寫字母。
高階:如果輸入字串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?
原來網易校招面試題是出自這兒。
已經做過了就直接上思路。用hashmap。遍歷s,對於每個s中的字元進行計數。
遍歷t,對t中的每個字元進行反計數,如果減多了直接返回false。(方法一)
這題由於限定了小寫字母,因此可以設定乙個容量為26的陣列。通過char-'a』的方式確定放到**模擬了雜湊表,這樣能少寫點**。 (方法二)
class
solution
mapmap =
newhashmap
<
>()
;for
(int i =
0; i < s.
length()
; i++
)else
}for
(int i =
0; i < t.
length()
; i++
)else
if(map.
get(t.
charat
(i))
<1)
else
}return
true;}
}
class
solution
int[
] map =
newint[26
];for(
int i =
0; i < s.
length()
; i++
)for
(int i =
0; i < t.
length()
; i++
) map[t.
charat
(i)-
'a']--;
}return
true;}
}
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 類似雜湊 還是重複問題 首先需要明白題的意思,其實就是比較兩個字串中字母是否相同,在相同的情況下比較該字元...