0242. Valid Anagram

237. Valid Anagram #

题目 #

给定两个字符串 st,编写一个函数来判断 t 是否是 s 的字母异位词。

st 中每个字符出现的次数都相同,则称 st 互为字母异位词。

思路 #

代码 #

public Solution {
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) return false;
        
        Map<Character, Integer> sMap = new HashMap<>();
        Map<Character, Integer> tMap = new HashMap<>();
        
        for (int i=0; i<s.length(); i++) {
            char ch = s.charAt(i);
            int times = sMap.containsKey(ch) == false ? 0 : sMap.get(ch);
            sMap.put(ch, times + 1);
        }
        
        for (int i=0; i<t.length(); i++) {
            char ch = t.charAt(i);
            if (sMap.containsKey(ch) == false) return false;
            if (sMap.get(ch) == 0) return false;
            sMap.put(ch, sMap.get(ch) - 1);
        }
        
        return true;
    }
}