leetcode
給定兩個字串 s 和 t,判斷 t 是否是 s 的字母異位詞。
想要判斷 t 是否是 s 的字母異位詞,就要記錄 s **現了什麼,然後與 t 中的進行比較,所以可以使用hashmap記錄 s 中各個字母出現的次數,然後再根據 t 中字母出現的次數進行修改,當某乙個字母出現次數小於 0 時代表 t 不是 s 的字母異位詞,當 t 遍歷結束以後 map 中還有字母說明 s 比 t 長,即 t 不是 s 的字母異位詞。
public
boolean
isanagram
(string s, string t)
else
}//統計第二個字元
int i=0;
for(
;ilength()
;i++
)else}if
(!map.
isempty()
)//map非空說明 s 比 t 長
return
false
;return
true
;}
官解的第一種思路是先判斷兩個字串是否等長,不等長肯定不是字母異位詞,然後將字串中的內容進行排序,排序後如果兩個字串相同則為字母異位詞
public
boolean
isanagram
(string s, string t)
第二種思路是與我的思路相似,但是他用乙個長度為26的陣列代替雜湊表,長度26恰好可以代表所有的小寫字母,然後遍歷字串一在指定下標自增,遍歷字串二在指定下標自減,出現小於 0 的即不是字母異位詞,沒出現就是字母異位詞
public
boolean
isanagram
(string s, string t)
for(
int i=
0;ilength()
;i++
)return
true
;}
當目標限定在某乙個範圍時,可以嘗試用陣列代替雜湊。 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中每個字母出現的次...