LeetCode题解(1216):验证回文字符串III(Python)
发布日期:2021-06-29 20:22:29 浏览次数:2 分类:技术文章

本文共 812 字,大约阅读时间需要 2 分钟。

题目:(困难)

标签:动态规划、字符串

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N 2 ) O(N^2) O(N2) O ( N 2 ) O(N^2) O(N2) 324ms (53.85%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:    def isValidPalindrome(self, s: str, k: int) -> bool:        size = len(s)        # dp[i][j] = 令字符串[i,j]变为回文串需要删除的字符数        dp = [[float("inf")] * size for _ in range(size)]        for i in range(size):            dp[i][i] = 0        for length in range(2, size + 1):            for i in range(size - length + 1):                j = i + length - 1                if s[i] == s[j]:                    if length == 2:                        dp[i][j] = 0                    else:                        dp[i][j] = dp[i + 1][j - 1]                else:                    dp[i][j] = min(dp[i + 1][j], dp[i][j - 1]) + 1        return dp[0][-1] <= k

转载地址:https://dataartist.blog.csdn.net/article/details/117262560 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(1682):最长回文子序列II(Python)
下一篇:LeetCode题解(1181):前后拼接(Python)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月25日 10时37分44秒