题目
解题思路
- 用长度为26的数组record做哈希表,对应26个字母
- 遍历s,每个字符对应位置加一
- 再遍历t,每个字符对应位置加一
- 遍历数组record,如果每个位置都为零,则t和s是字母异位词
代码
class Solution {
public boolean isAnagram(String s, String t) {
int[] record = new int[26];
for(int i = 0;i < s.length();i++){
record[s.charAt(i)-'a']++;
};
for(int i = 0;i < t.length();i++){
record[t.charAt(i)-'a']--;
};
for(int count:record){
if(count != 0){
return false;
};
};
return true;
}
}
注:
1. String.charAt(int index)
返回指定索引处的 char 值。
2. java增强for循环
for(声明语句 : 表达式)
{
//代码句子
}
int[] record = new int[26];
这行代码声明了一个整型数组 record,它有26个元素。每个元素都被初始化为整型的默认值,即0。