一、题目描述
二、解法
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) return false;
int[] dict = new int[26];
/**
* 写法1
*/
for (char c : s.toCharArray()) {
dict[c - 'a'] ++;
}
for (char c : t.toCharArray()) {
dict[c - 'a'] --;
// 如果出现小于0的情况,则说明t包含一个不在s中的额外字符
// 原因是两个串长度相等,有频次大于0的情况必存在频次小于0的元素
if (dict[c - 'a'] < 0) {
return false;
}
}
return true;
/**
* 写法2
*/
/*for (int i = 0; i < s.length(); i++) {
dict[s.charAt(i) - 'a'] ++;
dict[t.charAt(i) - 'a'] --;
}
for (int count : dict) {
if (count != 0) {
return false;
}
}
return true;*/
}
}