首页 > 代码库 > [算法]判断兄弟单词
[算法]判断兄弟单词
一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程。
#include <iostream>#include <string>#include <cstring>using namespace std;void add(unsigned int count[],char c){ if(c <= ‘Z‘){ ++count[c - ‘A‘]; } else{ ++count[c - ‘a‘]; } }bool isBrother(const string& wa,const string& wb){ if(wa.length() != wb.length()){ return false; } unsigned int counta[26],countb[26]; memset(counta,0,26*4); memset(countb,0,26*4); for(int i = 0; i < wa.length(); ++i){ add(counta,wa.at(i)); add(countb,wb.at(i)); } for(int i = 0; i < 26; ++i){ if(counta[i]!=countb[i]){ return false; } } return true;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。