Problem:
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.
Note:
You may assume the string contains only lowercase alphabets.
Analysis:
Solutions:
C++:
bool isAnagram(string s, string t)
{
if(s.size() != t.size())
return false;
int hash[26] = {0};
for(int i = 0; i < s.size(); ++i)
++hash[s[i] - 'a'];
for(int i = 0; i < t.size(); ++i) {
if(hash[t[i] - 'a'] == 0 )
return false;
--hash[t[i] - 'a'];
}
return true;
}
Java
:
Python: