leetcode-notebook
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