思路
哈希表的三种方式:数组、set、map
本题采用数组形式的哈希表来解决
三个注意事项:
①数组哈希表定义,包括思路和原始大小
②Java中字符串的某个字符访问方式,字符串长度的方法
③for-each循环的书写方式
代码
class Solution {
public boolean isAnagram(String s, String t) {
// 借助一个大小为26的辅助int数组,每个下标对应a~z,值是出现的次数,字符串支持s[i]来访问第i个字符
int[] frequency = new int[26];
for (int i = 0; i < s.length(); i++) {
frequency[s.charAt(i) - 'a']++;
}
for (int j = 0; j < t.length(); j++) {
frequency[t.charAt(j) - 'a']--;
}
//遍历frequency数组,全为0则是异位词,否则非异位词
for(int i:frequency){
if(i!=0){
return false;
}
}
return true;
}
}