242.|242. Valid Anagram

题目分析
【242.|242. Valid Anagram】原题链接,登陆 LeetCode 后可用
这道题目我理解的是给两个字符串,然后判断一下这两个字符串是不是字符串中每个字母的个数都相同,只是位置可能不同。
这里想到的第一个解法是用一个Map来统计字符串 s 中每个字符的个数,然后再统计字符串 t 的情况。判断两个字符串中每个字符出现的次数是否相同。
代码

class Solution { public boolean isAnagram(String s, String t) { Map shm = new HashMap(); char[] sa = s.toCharArray(); char[] ta = t.toCharArray(); // 统计 s 字符串情况 for(Character c : sa) { if(shm.containsKey(c)) { shm.put(c, shm.get(c) + 1); } else { shm.put(c, 1); } } for(Character c : ta) { if(!shm.containsKey(c)) { return false; } else { shm.put(c, shm.get(c) - 1); if(shm.get(c) == 0) { shm.remove(c); } } } // 这种情况容易漏掉 if(!shm.isEmpty()) { return false; } return true; } }

    推荐阅读