LeetCode-5-Longest Palindromic Substring(动态规划)-Medium

题意理解:

求解最长的回文;


题目分析:

1. 通过遍历完成,但算法的复杂度过高(O(N3));

2. 采用动态规划,复杂度为O(N2)(先前以为所谓的动态规划,就是像《算法导论》里车间的那个例子,从最终决策节点向终端节点进行递归,最终获得最优解。其实,只要是最终最优决策依赖于过程最优决策的方式都是动态规划)


解题代码:

class Solution {
public:
    string longestPalindrome(string s) {
        int sLen=s.length();
        if(sLen<=1){
            return s;
        }
        
        bool dp[sLen][sLen];
        
        int maxLen=1;
        int pos=0;
        for(int i=0;iclass Solution {
private:
    bool isPalindromic(string s){
        if(s.length()<=1){
            return true;
        }
        
        int sLen=s.length();
        int halfLen=sLen/2;
        for(int i=0;imaxSubStr.length()){
                    maxSubStr=t;
                    cout<<"maxSubStr= "<


你可能感兴趣的:(LeetCode)