zoukankan      html  css  js  c++  java
  • 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);
        }
    };
  • 相关阅读:
    java8时间处理
    HttpServletRequest
    Elasticsearch简介
    springCloud-Alibaba--Sentinel
    Nacos集群部署:
    nginx安装配置
    hibernate 嵌套事务
    linux下cmake安装mysql 源码
    linux下中文乱码问题解决
    tomcat quartz 被触发两次
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3870278.html
Copyright © 2011-2022 走看看