如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。
分析:以下解法就是分别统计源字符串和目标字符串中每个元素的个数,然后判断个数是否相同,复杂度o(2*n)
bool isbrother(string src,string des)
{
if(src.length()!=des.length())
return false;
int i;
bool flag=true;
int countsrc[100]={0};
int countdes[100]={0};
for(i=0;i<src.length();i++)
{
countsrc[src.at(i)-'A']++;
countdes[des.at(i)-'A']++;
}
for(i=0;i<100;i++)
{
if(countsrc[i]!=countdes[i])
{
flag=false;
break;
}
}
return flag;
}