• LeetCode OJ-- Longest Palindromic Substring **


    https://oj.leetcode.com/problems/longest-palindromic-substring/

    给一个string,求它的最长回文子串。

    定义一个二维数组bool isPal[1000][1000];记录从 i 到 j 是否为回文的。

    首先初始化 [i][i] = true;

                  [i][i+1] = (s[i] == s[i+1])

    之后对长度 len = 3 和 开始位置 i 进行遍历,复杂度 n*n : sPal[i][i+len-1] = (isPal[i+1][i+len-2] && (s[i] == s[i+len-1])); 判断首尾是否相等,并且中间的部分是否为 true。

    class Solution {
    public:
        string longestPalindrome(string s) {
            if(s == "")
                return "";
            
            bool isPal[1000][1000];
    
            for(int i = 0;i < s.size(); i++)
                isPal[i][i] = true;
    
            int begin = 0, maxlen = 1;
    
            for(int len = 2;len <= s.size(); len++)
            {
                for(int i = 0; i + len <= s.size(); i++)
                {
                    if(len == 2)
                    {
                        isPal[i][i+1] = (s[i] == s[i+1]);
                        if(isPal[i][i+1])
                        {
                            begin = i;
                            maxlen = len;
                        }
                    }
                    else
                    {
                        isPal[i][i+len-1] = (isPal[i+1][i+len-2] && (s[i] == s[i+len-1]));
                        if(isPal[i][i+len-1])
                        {
                            begin = i;
                            maxlen = len;
                        }
                    }
                }
            }
     
            return s.substr(begin,maxlen);
        }
    };
  • 相关阅读:
    去掉滚动条
    一些input用法
    jquery-ui datepicker
    js修改样式
    js时间
    跳转到页面的某个anchor
    事件传递
    flex对象.show()的时候display变成block
    html中传递信息
    button disable and enable
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3870278.html
Copyright © 2020-2023  润新知