题目分析
- 使用HashMap有点过于庞大,由于都是英文小写字母,所以直接开个数组就行
- 也可对s和t排序
Solution
public boolean isAnagram(String s, String t) {
if (s == null || t == null) return false;
char[] schars = s.toCharArray();
char[] tchars = t.toCharArray();
if (schars.length != tchars.length) return false;
int[] counts = new int[26];
for (int i = 0; i < schars.length; i++) {
counts[schars[i] - 'a']++;
}
// t中出现s中没有的,那么对应字母就会多出来
for (int i = 0; i < tchars.length; i++) {
if (--counts[tchars[i] - 'a'] < 0) return false;
}
return true;
}
Reference:小码哥MJ