题干
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
想法
因为只包含小写字母,用数组来作为map存储在s里的每个字母出现的次数
再遍历一遍t,遇到一个就减一个统计次数
最后如果map是个全为0的数组就对
Java代码
class Solution {
public boolean isAnagram(String s, String t) {
if(s==null&&t==null){
return true;
}
int[] map=new int[26];
char[] schar=s.toCharArray();
char[] tchar=t.toCharArray();
for (char c:schar
) {
map[c-'a']++;
}
for (char tem:tchar
) {
map[tem-'a']--;
}
for (int f:map
) {
if(f!=0){
return false;
}
}
return true;
}
}