Leetcode Longest Palindromic Substring

来源:互联网 发布:php动态网站开发 答案 编辑:程序博客网 时间:2024/05/21 07:37

以每个元素为中心点往两边找回文,这一题用dp并不方便。

有奇数长度和偶数长度两种情况

     string longestPalindrome(string s) {        string ans;        int max_len = 0;        int n = s.length(), j = 0;        for(int i = 0; i < n; i++){            // odd length            j = 0;            while(1){                if(i-j-1 >= 0 && i + j +1 < n && s[i-j-1] == s[i+j+1])                    j++;                else                    break;            }            if(2*j+1 > max_len){                max_len = 2*j +1;                ans = s.substr(i-j, max_len);            }            // even length            if(i+1 < n && s[i] == s[i+1]){                j = 0;                while(1){                    if(i -j-1 >= 0 && i + j + 1 < n && s[i-j-1] == s[i+j+2])                        j++;                    else                        break;                }                 if(2*j+2 > max_len){                    max_len = 2*j +2;                    ans = s.substr(i-j, max_len);                }            }        }        return ans;    }




0 0