1.先进行简单的字符长度判断,不相等直接返回false;
2.containsKey()的使用
3.在减减循环14-17行里判别key的value是否为0,要不然会报错
1 class Solution { 2 public boolean isAnagram(String s, String t) { 3 if(s.length()!=t.length()){ 4 return false; 5 } 6 HashMap<Character,Integer> smap=new HashMap<>(); 7 HashMap<Character,Integer> tmap=new HashMap<>(); 8 for(int i=0;i<s.length();i++){ 9 smap.put(s.charAt(i),smap.getOrDefault(s.charAt(i),0)+1); 10 } 11 int vaild=smap.size(); 12 for(int i=0;i<t.length();i++){ 13 char c = t.charAt(i); 14 if(smap.containsKey(c)){ 15 smap.put(c,smap.getOrDefault(c,0)-1); 16 if(smap.get(c)==0){ 17 smap.remove(c); 18 } 19 } 20 21 } 22 return smap.size()==0 ? true:false; 23 24 } 25 }
标签:LeetCode242,false,HashMap,异位,length,Q23,new,String From: https://www.cnblogs.com/cff1/p/18240967