242. 有效的字母异位词

 

根据题意,异位词的意思为2个字符串中相同元素出现相同次数

2次迭代,第一次迭代计算每个元素出现的次数,每次+1

第二次迭代将每个元素,每次-1,。第二次迭代完成以后,

若异位词成立,则每个key对应的value都应该为0,否则便不成立。

时间O(n),空间O(m),m为2个字符串s和t的离散度

public boolean isAnagram(String s, String t) {
        if (s.length()!=t.length()) return false;
        Map<Character,Integer> map = new HashMap<Character,Integer>();
        for (int i=0;i<s.length();i++){
            map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);
        }
        for (int i=0;i<t.length();i++){
            map.put(t.charAt(i),map.getOrDefault(t.charAt(i),0)-1);
            if (map.get(t.charAt(i))<0) 
                return false;
        }
        return true;
    }

 

posted @ 2021-03-29 10:23  jchen104  阅读(55)  评论(0编辑  收藏  举报