之前看了许多博客对于对策字符串求最大长度的解决方法以及相应的程序,但是最后在实际环境实际测试的时候就会出现问题,无法准确测试其中对策字符串的最大长度。所以经过本人的研读最后自己写了一个算法,现在列举如下:
int countMax(const string str)
{
int strlen=str.length();
int maxlen=1;
int start=0,end=strlen-1;
int cpEnd;
int i,j;
bool isOK;
while(start<end)
{
isOK=false;
cpEnd=end;
while(start!=cpEnd&&!isOK)
{
if(str[start]==str[cpEnd])
{
i=start;
j=cpEnd;
while(str[i++]==str[j--])
{
if(i<=j-1)
{
continue;
}if(cpEnd-start+1>maxlen)
{
maxlen=cpEnd-start+1;
}
isOK=true;
break;
} }
cpEnd--;}
start++;
if(strlen-start<=maxlen-1)
{
break;
}
}
return maxlen ;
}void main()
{
int maxLength=counterplan3("123");
getchar();}
自己实际测试过这个程序,没有问题的,希望大家多多指教