

题目
解决代码及点评
/*
匹配兄弟字符串,字符串内容一样,但是顺序不一样,称之为兄弟字符串
*/
#include <iostream>
using namespace std;
int isBroStr(char *str1, char *str2)
{
// 整个数组,一个字符串对整个数组累加,一个字符串对这个数组累-,最后这个数组应该是0
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;
}
代码下载及其运行
代码下载地址:http://download.youkuaiyun.com/detail/yincheng01/6704519
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果