题目描述:
Given two strings s and t, write a function to determine if t is an anagram of s.
For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.
思路一:
O(n)
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length())
return false;
int[] buckets = new int[26];
for (char c: s.toCharArray())
buckets[c - 'a']++;
for (char c: t.toCharArray())
buckets[c - 'a']--;
for (int i = 0; i < buckets.length; i++)
if (buckets[i] < 0)
return false;
return true;
}
}
思路二:
class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length())
return false;
char[] schar = s.toCharArray();
char[] tchar = t.toCharArray();
Arrays.sort(schar);
Arrays.sort(tchar);
for (int i = 0; i < schar.length; i++)
if (schar[i] != tchar[i])
return false;
return true;
}
}