//如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。
bool CItems::CheckBrotherString(char *left,char *right)
{
//把键盘128个字符列举,使用桶排序相关原理实现
char keys[128];
for ( int i = 0; i<128; i++ )
{
keys[i]=0;
}
//遍历第一个字符串,记录字符个数
while ( *left!='\0' )
{
keys[*left++]++;
}
//遍历第二个字符串,记录字符个数
while ( *right!='\0' )
{
keys[*right++]--;
}
for ( int i = 0; i<128; i++ )
{
if ( keys[i]!=0)
{
return false;
}
}
return true;
}
bool CItems::CheckBrotherString(char *left,char *right)
{
//把键盘128个字符列举,使用桶排序相关原理实现
char keys[128];
for ( int i = 0; i<128; i++ )
{
keys[i]=0;
}
//遍历第一个字符串,记录字符个数
while ( *left!='\0' )
{
keys[*left++]++;
}
//遍历第二个字符串,记录字符个数
while ( *right!='\0' )
{
keys[*right++]--;
}
for ( int i = 0; i<128; i++ )
{
if ( keys[i]!=0)
{
return false;
}
}
return true;
}