思路:哈希表
很基础的题目,需要注意的就是最开始的判断
if(s.length() != t.length() || s.equals(t))
return false;
代码:
class Solution {
Map<Character, Integer> counts = new HashMap<>();
public boolean isAnagram(String s, String t) {
if(s.length() != t.length() || s.equals(t))
return false;
for (char ch : s.toCharArray()) {
counts.put(ch, counts.getOrDefault(ch, 0) + 1);
}
for (char ch : t.toCharArray()) {
if (!counts.containsKey(ch) || 0 == counts.get(ch))
return false;
counts.put(ch, counts.get(ch) - 1);
}
return true;
}
}
Go代码
func isAnagram(s string, t string) bool {
if len(s) != len(t) || s == t {
return false
}
nums := make([]int, 26)
for i := 0; i < len(s); i++ {
nums[s[i]-'a']++
nums[t[i]-'a']--
}
for _, num := range nums{
if num != 0{
return false
}
}
return true
}