Leetcode日记(4)---Longest Palindromic Substring

  • 最长回文字串题型
  • 我一个想法,回文的作用有哪些哦?

eg:

abccba

  • 动态规划
class Solution {
public:
    string longestPalindrome(string s) {
        int len = s.length(), max = 1, ss = 0, tt = 0;
        bool flag[len][len];
        for (int i = 0; i < len; i++)
            for (int j = 0; j < len; j++)
                if (i >= j)
                    flag[i][j] = true;
                else flag[i][j] = false;
        for (int j = 1; j < len; j++)
            for (int i = 0; i < j; i++)
            {
                if (s[i] == s[j])
                {
                    flag[i][j] = flag[i+1][j-1];
                    if (flag[i][j] == true && j - i + 1 > max)
                    {
                        max = j - i + 1;
                        ss = i;
                        tt = j;
                    }
                }
                else flag[i][j] = false;
            }
        return s.substr(ss, max);
    }
};
  • 运行时间较长

码友feliciafay的解答

这位码友,总结的非常全面,所提到的动态转移方程这个名词倒是十分的新鲜(2015.12.4)

回文字符串的子串也是回文,比如P[i,j](表示以i开始以j结束的子串)是回文字符串,那么P[i+1,j-1]也是回文字符串

p[i,j]=0表示作为字串的p[i,j]不是回文字串
p[i,j]=1 …
p[i,i]=1

码友KangRoger的解答

你可能感兴趣的:(LeetCode)