5. Longest Palindromic Substring最大回文子串

Posted stAr_1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5. Longest Palindromic Substring最大回文子串相关的知识,希望对你有一定的参考价值。

    int sta = 0;
    int max = 1;
    public String longestPalindrome(String s) {
        /*
        判断回文有两种:
            1.最大回文子序列求长度:
                用动态规划,dp[sta][end] 代表开头为sta、结尾为end的部分最大回文子序列的长度是多少
                dp[sta][end] = (s.charAt(sta)==s.charAt(end))?dp[sta+1][end-1]+2:max(dp[sta][end-1],dp[sta+1][end])
2.最大回文子串: 用两遍延伸法,分为两种情况,奇数子串和偶数子串: 把所有字符当做中轴,遍历一遍,每当长度超过,就更新结果
*/ int l = s.length(); if (l==0) return ""; for (int i = 0; i < l; i++) { //奇数情况 helper(s,i,i); //偶数情况 helper(s,i,i+1); } //这里注意是前闭后开区间,注意区间 return s.substring(sta,sta+max); } public void helper(String s,int left,int right){ //从中轴向两边延伸,注意最后的结果多了一次 while (left >= 0&& right < s.length()&& s.charAt(left)==s.charAt(right)) { left--; right++; } //由于left多减了一次,right多加了一次,所以处理要注意 if (max < right-left-1) { max = right-left-1; sta = left+1; } }

最大回文子序列在:http://www.cnblogs.com/stAr-1/p/7444994.html

以上是关于5. Longest Palindromic Substring最大回文子串的主要内容,如果未能解决你的问题,请参考以下文章

#Leetcode# 5. Longest Palindromic Substring

5. Longest Palindromic Substring - Unsolved

5. Longest Palindromic Substring

5. Longest Palindromic Substring

[LeetCode] 5 Longest Palindromic Substring

5. Longest Palindromic Substring