1216. Valid Palindrome III
https://leetcode.com/problems/valid-palindrome-iii/
class Solution {
public:
bool isValidPalindrome(string s, int k) {
const int N = s.length();
vector<vector<int>> dp(N, vector<int>(N, 0));
for (int i = 0; i < N; ++i) dp[i][i] = 1;
for (int i = N - 1; i >= 0; --i) {
for (int j = i + 1; j < N; ++j) {
if (s[i] == s[j]) dp[i][j] = dp[i + 1][j - 1] + 2;
else dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
}
}
return N - dp[0][N - 1] <= k;
}
};Last updated