概要
哈希表保存字符的个数,之后比较即可。
题目
给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。
注意:若 s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同,则称 s 和 t 互为变位词(字母异位词)。
链接:https://leetcode.cn/problems/dKk3P7
思路
判断两个字符串是否相等,相等返回false。
遍历两个字符串,各自统计每个字符出现的次数,之后比较是否相等。
解法:用长度为26的数组作为哈希表保存各字符个数
代码
public boolean isAnagram(String s, String t) {
if (s.equals(t)) {
return false;
}
int[] sArray = new int[26];
int[] tArray = new int[26];
for (char c : s.toCharArray()) {
sArray[c - 'a']++;
}
for (char c : t.toCharArray()) {
tArray[c - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (sArray[i] != tArray[i]) {
return false;
}
}
return true;
}