输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“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; }