#include <stdio.h> int max_len( char *str ); void main() { char str[30]; int len; gets( str ); len = max_len( str ); printf("最长的对称子串的长度%d/n",len); } int max_len( char *str ) { int len,i,j,k,max=0; for ( i=0; *(str+i)!='/0'; i++ ) { len = 0; if ( *(str+i)==*(str+i+1) ) { len = 2; for ( j=i-1,k=i+2; *(str+k)!='/0'&&j>=0; j--,k++) /*判断条件既要考虑到左边,又要考虑到左边*/ { if ( *(str+j) != *(str+k) ) break; len += 2; /*因为每次都是一对,所以加2*/ } if ( max < len ) max = len; } } return( max ); }