《编程之法》:兄弟字符串
来源:互联网 发布:数据挖掘项目培训 编辑:程序博客网 时间:2024/05/01 22:12
题目
如果两个字符串中的字符一样,出现次数也一样,只是出现的顺序不一样,则认为这两个字符串是兄弟字符串。如何判断两个字符串是兄弟字符串。
思路
建两个hash数组,分别记录两个字符串,然后比较两个数组的每一项是否相同,有不同的说明不是兄弟字符串。
代码
bool IsBrother(const string a,const string b) { if (a.length() != b.length()) { return false; } int hashTable1[26] = {0}; int hashTable2[26] = {0}; int n = a.length(); for (int i = 0; i < n; ++i) { hashTable1[a[i] - 'a']++; hashTable2[b[i] - 'a']++; } for (int j = 0; j < 26; ++j) { if (hashTable1[j] != hashTable2[j]) { return false; } } return true;}int main() { string a = "bad"; string b = "adb"; if (IsBrother(a, b)) { cout<<a<<" and "<<b<<" are brother"<<endl; } else { cout<<a<<" and "<<b<<" are not brother"<<endl; } return 0;}
运行结果
bad and adb are brotherProcess finished with exit code 0
0 0
- 《编程之法》:兄弟字符串
- 素数乘积法判断兄弟字符串
- 基于visual Studio2013解决面试题之1009兄弟字符串
- 编程之法(字符串旋转)
- 编程之法-第一章字符串
- 编程之法--字符串反转
- 编程之法--字符串包含
- 我的编程之路(十六) 兄弟 恋人 朋友 同学
- 兄弟字符串的判断
- 寻找兄弟字符串
- 快速匹配兄弟字符串
- 查找兄弟字符串
- 寻找兄弟字符串
- 【面试题】:兄弟字符串
- 快速查找兄弟字符串
- 编程之法之-字符串的旋转
- 编程之法2----字符串的包含
- 【编程之法习题】第一章 字符串
- 链表:单链表反转超详解
- svn相关命令
- 分组背包:hdu1712 hdu3033
- 顺序表元素的逆置式交换
- BZOJ 1601: [Usaco2008 Oct]灌水
- 《编程之法》:兄弟字符串
- 借助 Calico,管窥 Kubernetes 网络策略
- CCF CSP 交通规划 最短路径+最小生成树
- 开通博客,一起学习吧
- 记录一下,2017年3月17日22:20:33申请博客
- Ajax
- php strcmp() vulnerabilites
- Linux系统工具安装--Ubuntu 16.04下TexLive 2016的安装
- 线程死锁问题