https://leetcode-cn.com/problems/valid-anagram/
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:输入: s = "rat", t = "car"
输出: false
方法
class Solution {
public boolean isAnagram(String s, String t) {
// 方法一排序对比
if(s.length()!=t.length()) return false;
// char[] arrayA=s.toCharArray();
// char[] arrayB=t.toCharArray();
// Arrays.sort(arrayA);
// Arrays.sort(arrayB);
// return Arrays.equals(arrayA,arrayB);
// 方法二map
HashMap<Character,Integer> map=new HashMap<>();
char[] arrayA=s.toCharArray();
char[] arrayB=t.toCharArray();
for(int i=0;i<arrayA.length;i++){
if(map.get(arrayA[i])==null){
map.put(arrayA[i],1);
}
else{
int value=map.get(arrayA[i]);
map.put(arrayA[i],value+1);
}
}
for(int i=0;i<arrayB.length;i++){
if(map.get(arrayB[i])!=null){
int value=map.get(arrayB[i]);
value--;
map.put(arrayB[i],value); // 跟新map
if(value==0) map.remove(arrayB[i]);
}
}
return map.isEmpty();
}
}
结果


被折叠的 条评论
为什么被折叠?



