LeetCode:Longest Palindromic Substring

xiaoxiao2021-02-28  76

题目:

Given a string s, find the longest palindromic substring in s. 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; } };

转载请注明原文地址: https://www.6miu.com/read-36350.html

最新回复(0)