Write a method to decide if two strings are anagrams or not
1.先排序后比较。
2. occur[str1[i]]++;
occur[str2[i]]--;
如果occur数组最后都是0,则符合。
bool isAnagrams1(string str1, string str2)
{
string s1=str1;
string s2=str2;
sort(s1.begin(),s1.end());
sort(s2.begin(),s2.end());
return s1==s2;
}
bool isAnagrams2(string str1, string str2)
{
int len1=str1.size();
int len2=str2.size();
if(len1!=len2)
return false;
int occur[256]={0};
for(int i=0;i<len1;i++)
{
occur[str1[i]]++;
occur[str2[i]]--;
}
for(int i=0;i<256;i++)
{
if(occur[i]!=0)
return false;
}
return true;
}
int main()
{
string str1="abcde";
string str2="edcab";
cout << isAnagrams1(str1, str2)<< endl;
cout << isAnagrams2(str1, str2)<< endl;
return 0;
}