leetcode-notebook icon indicating copy to clipboard operation
leetcode-notebook copied to clipboard

5099. 验证回文字符串 III

Open JalanJiang opened this issue 5 years ago • 1 comments


  • [ ] 输出题解
  • [ ] 时间复杂度
  • [ ] 是否最优解

JalanJiang avatar Oct 05 '19 16:10 JalanJiang

  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

JalanJiang avatar Oct 07 '19 11:10 JalanJiang