您的位置:首页 > 其它

最大对称字符串的长度

2012-11-01 23:20 176 查看
输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符
串里最长的对称子字符串是“goog”,因此输出4。

我写的代码,已通过测试。

复杂度比较高。

#include<iostream>
using namespace std;
int ishuiwen(char *str,int n)//n为字符串长度
{
char *s1=str,*s2=str+n-1;//s2指向末尾
int flag=0;
while(*s1)
{
if(*s1==*s2)
{
if((s1==s2)||(s1+1==s2)){flag=1;break;}
else {s1++;s2--;}
}
else break;
}
return flag;
}
int main()
{
char str[20];
while(cin>>str)
{
char *str1=str;int max=1;
for(int i=0;i<strlen(str);i++)
{
for(int j=i+1;j<strlen(str);j++)
{
if(ishuiwen(str+i,j-i+1)==1)
{
if(j-i+1>max)max=j-i+1;
}
}
}
cout<<max<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: