快速好写的求最长回文子串的代码(O(n^2))

来源:互联网 发布:sql 报表开发工具 编辑:程序博客网 时间:2024/06/08 01:13

有好写, 又好想, 是切水题的不二之选. 注意一下k的初值的变化, 因为找偶数的字符串与奇数的刚好差了一个.

#include<cstdio>#include<cstring>char s[1005];int main(){    scanf("%s",s);    int len = strlen(s);    int res = -1;    for(int i=0;i<len;i++){        int k = -1;        for(int j=0;i - j >= 0 && i+j < len; j++){  //是从中心开始向两边扩展的!!!            if(s[i-j] == s[i+j])                k += 2;            else break;        }        if(k > res)            res = k;        k = 0;              for(int j=0;i - j >= 0 && i+j+1 < len; j++){            if(s[i-j] == s[i+j+1])                k += 2;            else break;            if(k > res)                res = k;        }    }    printf("%d\n",res);}
原创粉丝点击