zoukankan      html  css  js  c++  java
  • LeetCode-Longest Palindromic Substring

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

    通过动归,每次i,j终点的串是回文需要s[i]==s[j]且i+1,j-1串是回文

    class Solution {
    public:
        string longestPalindrome(string s) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if(s.length()==0)return "";
            vector<vector<bool> > ISP;
            vector<bool> one;
            one.resize(s.length(),false);
            ISP.resize(s.length(),one);
            int len=1;
            int start=0;
            for(int i=0;i<s.length();i++){
                ISP[i][i]=true;
            }
            for(int i=1;i<s.length();i++){
                if(s[i-1]==s[i])
                {
                    ISP[i-1][i]=true;
                    start=i-1;
                    len=2;
                }
            }
            for(int j=2;j<s.length();j++){
                for(int i=0;i+j<s.length();i++){
                    if(s[i]==s[i+j]&&ISP[i+1][i+j-1])
                    {
                        ISP[i][i+j]=true;
                        len=j+1;
                        start=i;
                    }
                }
            }
            return s.substr(start,len);
        }
    };
    O(n^2)
  • 相关阅读:
    IntelliJ Idea使用代码折叠
    c# 文件属性读取操作及文件之间操作
    c#文件操作
    c++头文件 #include<iostream>
    基本SQL语句
    dd
    c#属性中的get和set属性
    c#
    c#运算表达式
    c#方法
  • 原文地址:https://www.cnblogs.com/superzrx/p/3321886.html
Copyright © 2011-2022 走看看