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 }