給定兩個字符串 s 和 t ,編寫一個函數來判斷 t 是不是 s 的一個字母異位詞。
示例 1:算法
輸入: s = "anagram", t = "nagaram"
輸出: true
複製代碼
示例 2:數組
輸入: s = "rat", t = "car"
輸出: false
複製代碼
說明: 你能夠假設字符串只包含小寫字母。函數
這道題比較容易一些,hash記憶化便可。固然了,這道題只會出現小寫字母,那麼咱們用一個數組就能解決。
🐎:ui
func isAnagram(s string, t string) bool {
//兩個字符串都不同長了確定不對啦
if len(s) != len(t) {
return false
}
//數組,也是特殊的hash手段哦
b := make([]int, 26)
for _, r := range s {
b[r-'a']++
}
for _, r := range t {
b[r-'a']--
if b[r-'a'] < 0 {
return false
}
}
//這一步在這道題裏徹底沒有必要~由於先保證了兩個字符串必須同樣長,那麼在上一步就能夠把全部不知足的狀況剔除了,可是仍是加上這一步吧,畢竟在其餘的題目裏可能用到哦~
for _, v := range b {
if v != 0 {
return false
}
}
return true
}
複製代碼
好了,繼續加油吧。spa
算法夢想家,來跟我一塊兒玩算法,玩音樂,聊聊文學創做,我們一塊兒天馬行空! code