Q23 LeetCode242 字母异位词

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 }

 

posted @ 2024-06-10 20:06  清川1  阅读(14)  评论(0)    收藏  举报