516. Longest Palindromic Subsequence

class Solution {
public:
    int longestPalindromeSubseq(string s) {
        int n = s.size();
        vector<int> v0(n), v1(n, 1), v2(n);
        vector<int> *i_2 = & v0, *i_1 = & v1, *i_ = & v2;
        for (int len = 2; len <= n; len++) {
            for (int i = 0; i + len <= n; i++) 
                i_->at(i) = s[i] == s[i + len - 1] ? 2 + i_2->at(i + 1) : max(i_1->at(i), i_1->at(i + 1));
            swap(i_1, i_2);
            swap(i_1, i_);
        }

        return i_1->at(0);
    }
};

results matching ""

    No results matching ""