题目:
给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的字母异位词。
注意:若 s
和 t
中每个字符出现的次数都相同,则称 s
和 t
互为字母异位词。
思路:hash表,可以用int数组代替
代码:
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length())
return false;
int[] arr = new int[26];
for (int i = 0; i < s.length(); i++) {
char s1 = s.charAt(i);
arr[s1 - 'a']++;
char t1 = t.charAt(i);
arr[t1 - 'a']--;
}
for (int i = 0; i < 26; i++) {
if (arr[i] != 0)
return false;
}
return true;
}
}
性能:时间复杂度O(s) 空间复杂度O(26)= O(1)