代码随想录day57

516最长回文子序列

class Solution {
public:
    int longestPalindromeSubseq(string s) 
    {
        vector>dp(s.size(),vector(s.size(),0));
        for(int i=0;i=0;i--)
        {
            for(int j=i+1;j

647回文子串

两种做法 

class Solution {
public:
    int countSubstrings(string s) {
        vector> dp(s.size(), vector(s.size(), false));
        int result = 0;
        for (int i = s.size() - 1; i >= 0; i--) 
        { 
            for (int j = i; j < s.size(); j++) 
            {
                if (s[i] == s[j]) 
                {
                    if (j - i <= 1) 
                    { 
                        result++;
                        dp[i][j] = true;
                    } 
                    else if (dp[i + 1][j - 1]) { 
                        result++;
                        dp[i][j] = true;
                    }
                }
            }
        }
        return result;
    }
};

class Solution {
public:
    int countSubstrings(string s) {
        vector> dp(s.size(), vector(s.size(), false));
        int result = 0;
        for (int i = s.size() - 1; i >= 0; i--) 
        { 
            for (int j = i; j < s.size(); j++) 
            {
                if (s[i] == s[j]) 
                {
                    if (j - i <= 1) 
                    { 
                        result++;
                        dp[i][j] = true;
                    } 
                    else if (dp[i + 1][j - 1]) { 
                        result++;
                        dp[i][j] = true;
                    }
                }
            }
        }
        return result;
    }
};

5最长回文子串

class Solution {
public:
    string longestPalindrome(string s) 
    {
        if(s.size()==1) return s;
        int maxlen=0;
        int index=0;
        for(int i=1;i=0&&fast

你可能感兴趣的:(算法,leetcode,职场和发展)