兄弟字符串(转)

 1 /* 
 2 如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串, 
 3 问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。 
 4 */  
 5 #include <iostream>  
 6 using namespace std;  
 7   
 8 int isBroStr(char *str1, char *str2)  
 9 {  
10     int a[60] = {0};  
11     int i, strLen;  
12       
13     if (!str1 && !str2)  
14         return 1;  
15     else if (!str1 || !str2)  
16         return 0;  
17     else  
18     {  
19         if(strlen(str1) != strlen(str2))  
20             return 0;  
21         strLen = strlen(str1);  
22         for(i = 0; i < strLen; i++)  
23         {  
24             ++a[str1[i] - 'A'];  
25             --a[str2[i] - 'A'];  
26         }  
27         for(i = 0; i <60; i++)  
28             if (a[i])  
29                 return 0;  
30         return 1;  
31     }          
32 }  
33   
34 int main()  
35 {  
36     char *str1 = "asdfaabAAB";  
37     char *str2 = "asdfAABaab";  
38     if (isBroStr(str1, str2))  
39         cout << " String 1 and String 2 are brothers!" << endl;  
40     else  
41         cout << " String 1 and String 2 are not brothers!" << endl;  
42     system("PAUSE");  
43     return 0;  
44 }  

 

转载于:https://www.cnblogs.com/zhang-wen/p/4780707.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值