对称子字符串的最大长度

来源:互联网 发布:linux退出root 编辑:程序博客网 时间:2024/05/30 22:52

输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4

 
//对称子字符串的最大长度bool Symmetric_String(char *s) //判断字符串是否对称{int d=strlen(s);char *temp=(char*)malloc(sizeof(char)*(d+1));temp[d]='\0';for (int i=0;i<d;i++){temp[i]=s[d-1-i];}for (i=0;i<d;i++){if (temp[i]!=s[i]){return false;}}free(temp);return true;} int Symmetric_String_Length(char *s){int d=strlen(s);char temp[50];memset(temp,'\0',sizeof(temp));int temp1=-1;//存储临时数据for (int i=d;i>=0;i--) //遍历字符串的每个子字符串{memset(temp,'\0',sizeof(temp));for (int j=0;j<=i;j++){ for (int k=j,t=0;k<i;k++,t++) {temp[t]=s[k]; //所得到的子字符串赋给缓冲区 }if(Symmetric_String(temp)) //判断子字符串是否为对称的字符串{if ((i-j)>temp1) //如果大于所得到的长度则,将上一个长度替换{temp1=((i-j));}}memset(temp,'\0',sizeof(temp));//把缓冲区清空,进入下一个循环}}return temp1;}