题目
代码
- 个单词包含相同的字母,并且各个字母出现的次数相同,但是次序不同
- 建立一个map,记录26个字母和他们出现的次数
- 扫描s时,次数++
- 扫t时,次数--
- 如果是异位,最后次数都=0
class Solution {
public boolean isAnagram(String s, String t) {
int sl = s.length(), tl = t.length();
if (sl != tl) {
return false;
}
//建立一个map,记录26个字母和他们出现的次数
int[] map = new int[26];
//次数++
for (int i = 0; i < sl; i++) {
map[s.charAt(i) - 'a']++;
}
//次数--
for (int i = 0; i < tl; i++) {
map[t.charAt(i) - 'a']--;
}
//++ --操作后,如果某个字母出现次数不为0,说明st不是字母异位
for (int i = 0; i < 26; i++) {
if (map[i] != 0) {
return false;
}
}
return true;
}
}