我们可以通过对两个字符串的字符进行计数,然后比较计数结果来判断两个字符串是否为字母异位词。
下面是详细的思路:
- 创建一个map用于存储每个字符出现的次数。
- 遍历字符串s,对每个字符进行计数,存储在map中。
- 遍历字符串t,对每个字符进行计数,同时在map中减去计数。
- 如果两个字符串中相同字符的计数完全一致,那么t就是s的字母异位词
func isAnagram2(s string, t string) bool {
if len(s) != len(t) {
return false
}
charCount := make(map[rune]int)
// 对字符串s进行计数
for _, char := range s {
charCount[char]++
}
// 对字符串t进行计数,同时减去计数
for _, char := range t {
charCount[char]--
if charCount[char] < 0 {
return false // t中出现了s中没有的字符,或者t中某个字符出现次数超过s中的次数
}
}
return true
}