1.两个for循环搜索所有可能可能长度的连续的字符串
for(int i=0;i<strlen;i++){
for(int j=strlen-1;j>i; j--){
...
}
}
#include<stdio.h> #include<string.h> int main(){ char s[2500]={0}; scanf("%s",s); int len = strlen(s); int max_v = 1; int f = 0; for(int i=0;i<len;i++){ for(int j=len-1;j>i;j--){ int count = 0; int m,n; if((i+j)%2==1){ m = (i+j)/2; n = (i+j)/2+1; } else{ m = (i+j)/2-1; n = (i+j)/2+1; count = 1; } int x=m,y=n; for(;x>=i;x--,y++){ if(s[x]==s[y]) count = count+2; else break; } if(count>max_v) max_v = count; if(count==len-i){ // len-i最大可能的长度 f = 1; break; } } if(f==1){ break; } } printf("%d",max_v); }