An anagram is the result of rearranging the letters of a word to produce a new word (see wikipedia). 一个单词能通过字母重排变为另一个.
Note: anagrams are case insensitive 大小写不敏感
Complete the function to return true if the two arguments given are anagrams of each other; return false otherwise.
Examples
“foefet” is an anagram of “toffee”
“Buckethead” is an anagram of “DeathCubeK”
要点
::toupper
是C中的宏, 前面不用加std
!!std::transform
和std::sort
的使用- 应该在一开始就通过字符串的长度来判断. 可以一下排除掉明显不同的string.
#include <string>
#include <algorithm>
bool isAnagram(std::string test, std::string original){
if(test.length() != original.length() ) return false ;
std::transform(test.begin(),test.end() ,test.begin() , ::toupper);
std::transform(original.begin(), original.end() ,original.begin() , ::toupper);
std::sort(test.begin() , test.end());
std::sort(original.begin() ,original.end() );
return test == original ;
}