https://leetcode-cn.com/problems/valid-anagram/
法一:放到数组中排序,比较两个数组是否相同
public static boolean isAnagram(String s, String t) {
if(s.length() != t.length()) {
return false;
}
char[] str1 = s.toCharArray();
char[] str2 = t.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1, str2);
}
法二:记录字符串s中字符出现的频次,然后遍历字符串t,减去table中对应的频次。
public static boolean isAnagram(String s, String t) {
if(s.length() != t.length()) {
return false;
}
int[] table = new int[26];
for(int i=0; i<s.length(); i++) {
table[s.charAt(i)-'a']++;
}
for(int i=0;i<t.length();i++) {
table[t.charAt(i)-'a']--;
if(table[t.charAt(i)-'a']<0)
return false;
}
return true;
}