LeetCode:Longest Palindromic Substring

来源:互联网 发布:java 方法上的泛型 编辑:程序博客网 时间:2024/06/14 00:48

题目:

Given a string s, find the longest palindromic substring ins. You may assume that the maximum length of s is 1000.

Example:

Input: "babad"Output: "bab"Note: "aba" is also a valid answer.

Example:

Input: "cbbd"Output: "bb"
找到给定字符串的最长连续回文子串。

思路:

本题可用动态规划思路解决,dp[I][j]表示从I到j的子串是否为回文串,若dp[I+1][j-1]==true且s[i]==s[j]时我们就可以说dp[I][j] == true。

代码:

class Solution {public:    string longestPalindrome(string s) {        int n=s.size();        string res;                bool **dp=new bool*[n];        for(int k=0;k<n;k++){            dp[k]=new bool[n];        }        for(int i=n-1;i>=0;i--){            for(int j=i;j<n;j++){                dp[i][j]=s[i]==s[j]&&(j-i<3||dp[i+1][j-1]);                if(dp[i][j]&&(res.empty()||j-i+1>res.size())){                    res=s.substr(i,j-i+1);                }            }        }        return res;    }};



原创粉丝点击