写一个方法anagrams(s,t)判断两个字符串是否是字谜。
例子:s = "abcd", t = "dcab" ,return true.
解法1:判断两个字符串的不同字符出现的频率相同。
bool anagram(string s,string t)
{
if(s.empty() || t.empty())
{
return false;
}
if(s.size() != t.size())
{
return false;
}
int letterCount[256] = {0};
for(int i=0;i!=s.size();++i)
{
++letterCount[s[i]];
--letterCount[t[i]];
}
for(int i=0;i!=t.size();++i)
{
if(letterCount[t[i]] < 0)
{
return false;
}
}
return true;
}
解法2:排序两个字符串,看是否一样,一样则true。
bool anagram(string s,string t)
{
if(s.empty() || t.empty())
{
return false;
}
if(s.size() != t.size())
{
return false;
}
sort(s.begin(),s.end());
sort(t.begin(),t.end());
if(s == t)
{
return true;
}else{
return false;
}
}