//初始化dp数组 dp[i][j]=(i>=j)?true:false;
//状态转移方程 dp[i][j] =(s[i]==s[j])? dp[i+1][j-1] : false;
class Solution {
public:
string longestPalindrome(string s) {
int n=s.size();
bool dp[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i>=j){
dp[i][j]=true;
}
else{
dp[i][j]=false;
}
}
}
int max_=1;
int start=0;
for(int j=1;j<n;j++){
for(int i=0;i<j;i++){
if(dp[i+1][j-1] && s[i]==s[j]){
dp[i][j]=true;
if(j-i+1>max_){
start=i;
max_=j-i+1;
}
}
}
}
return s.substr(start,max_);
}
};
Leetcode: Longest Palindromic Substring
最新推荐文章于 2020-07-19 07:07:59 发布