【codewars-1】字谜检测 Anagram Detection

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::transformstd::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 ;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值