关闭

Leetcode: Longest Palindromic Substring

标签: leetcode
84人阅读 评论(0) 收藏 举报
分类:
//初始化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_);
    }
};

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45167次
    • 积分:1789
    • 等级:
    • 排名:千里之外
    • 原创:128篇
    • 转载:15篇
    • 译文:1篇
    • 评论:10条
    最新评论