242. Valid Anagram
判断给定两个字符串是否为相同字母不同排列的单词。方法有两个:
一、最简单的办法就是调用排序函数sort给两个字符串s和t排序,然后比较是否相等即可,复杂度为O(nlogn);
class Solution {
public 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);
}
}
二、对字符串的每个字母计数
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length()!=t.length()) return false;
int[] arr = new int[256];
for (int i=0; i< s.length();i++){
arr[s.charAt(i)] += 1;
}
for (int i=0; i< t.length(); i++){
arr[t.charAt(i)] -= 1;
}
for (int i=0; i< arr.length; i++){
if (arr[i]!=0) return false;
}
return true;
}
}