LeetCode242 有效的字母異位詞

2021-10-24 21:09:22 字數 1064 閱讀 3556

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中每個字母出現的次...