Q23 LeetCode242 字母異位詞

清川1發表於2024-06-10

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 }

相關文章