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.
方法一
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.size()!=t.size()){
return false;
}
int b[26]={};
for(int i=0;i<s.size();i++){
b[s[i]-'a']++;
}
for(int i=0;i<t.size();i++){
if((--b[t[i]-'a'])<0){
return false;
}
}
return true;
}
};
方法二
class Solution {
public:
bool isAnagram(string s, string t) {
if (s.size() != t.size())
return false;
unordered_map<char, int> mapa;
for (char& ch : s)
mapa[ch]++;
for (char& ch : t)
mapa[ch]--;
for (auto it = mapa.begin(); it != mapa.end(); it++)
if ((*it).second != 0)
return false;
return true;
}
};
方法三
public class Solution {
public boolean isAnagram(String s, String t) {
char[] sArr = s.toCharArray();
char[] tArr = t.toCharArray();
Arrays.sort(sArr);
Arrays.sort(tArr);
return String.valueOf(sArr).equals(String.valueOf(tArr));
}
}