JalanJiang/leetcode-notebook

5099. 验证回文字符串 III

JalanJiang opened this issue · 1 comments


  • 输出题解
  • 时间复杂度
  • 是否最优解
  1. 反转字符串 s 记为 t
  2. 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