根据题意,异位词的意思为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; }