leetcode-notebook
                                
                                 leetcode-notebook copied to clipboard
                                
                                    leetcode-notebook copied to clipboard
                            
                            
                            
                        5099. 验证回文字符串 III
- 反转字符串 s记为t
- 用 dp[i][j]表示s[i]和t[j]拥有相同字母数
class Solution:
    def isValidPalindrome(self, s: str, k: int) -> bool:
        t = s[::-1]
        length = len(s)
        dp = [[0 for _ in range(length + 1)] for _ in range(length + 1)]
        for i in range(1, length + 1):
            for j in range(1, length + 1):
                if s[i - 1] == t[j - 1]:
                    dp[i][j] = dp[i - 1][j - 1] + 1
                else:
                    dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
        
        return length - dp[length][length] <= k