您的位置:首页 > 其它

寻找兄弟字符串

2017-05-16 09:37 148 查看
/*
如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,
问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。
*/
#include <iostream>
#include<cstring>
using namespace std;

int isBroStr(char *str1, char *str2)
{
int a[26 * 2] = {0};
int i, strLen;

if (!str1 && !str2)
return 1;
else if (!str1 || !str2)
return 0;
else
{
if(strlen(str1) != strlen(str2))
return 0;
strLen = strlen(str1);
for(i = 0; i < strLen; i++)
{
++a[str1[i] - 'A'];
--a[str2[i] - 'A'];
}
for(i = 0; i < 26 * 2; i++)
if (a[i])
return 0;
return 1;
}
}

int main()
{
char *str1 = "asdfaabAAB";
char *str2 = "asdfAABaab";
if (isBroStr(str1, str2))
cout << " String 1 and String 2 are brothers!" << endl;
else
cout << " String 1 and String 2 are not brothers!" << endl;
system("PAUSE");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: