LeetCode 680. 验证回文字符串 Ⅱ

简介: 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

题目


给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。

示例 1:
输入: "aba"
输出: True
示例 2:
输入: "abca"
输出: True
解释: 你可以删除c字符。


注意:

字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。

解题思路

如果出现不对称,就检测缩减一个字符后的数组是否对称

class Solution:
    def validPalindrome(self, s: str) -> bool:
        # #常规解法(超出时间)
        # sList = list(s)
        # sLen = len(s)
        # if sList[:] == sList[::-1]:
        #     return True
        # for i in range(sLen):
        #     temp = sList.copy()
        #     temp.pop(i)
        #     if temp[:] == temp[::-1]:
        #         return True
        # return False
        #双指针
        left = 0
        right = len(s)-1
        while left < right:
            if s[left] == s[right]:
                left += 1
                right -= 1
            elif s[left+1:right+1] == s[left+1:right+1][::-1] or s[left:right] == s[left:right][::-1]:
                print(s[left+1:right+1])
                print(s[left:right])
                return True
            else:
                return False
        return True


目录
相关文章
|
9月前
|
存储 canal 算法
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
69 0
【Leetcode -680.验证回文串Ⅱ -693.交替位二进制数】
【Leetcode -680.验证回文串Ⅱ -693.交替位二进制数】
48 0
|
canal 算法
【Leetcode-121.买卖股票的最佳时机 -125.验证回文串】
【Leetcode-121.买卖股票的最佳时机 -125.验证回文串】
57 0
leetcode255. 验证前序遍历序列二叉搜索树
leetcode255. 验证前序遍历序列二叉搜索树
52 0
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
代码随想录Day17 LeetCode T98 验证二叉搜索树 T530 二叉搜索树的最小绝对差 T501 二叉搜索树中的众数 T236二叉搜索树的最近公共祖先
72 0
|
4月前
【LeetCode 40】98.验证二叉搜索树
【LeetCode 40】98.验证二叉搜索树
26 0
|
6月前
|
Python
【Leetcode刷题Python】946. 验证栈序列
LeetCode题目“946. 验证栈序列”的Python解决方案,通过模拟栈的压入和弹出操作来验证给定的两个序列是否能通过合法的栈操作得到。
41 6
|
8月前
力扣经典150题第二十五题:验证回文串
力扣经典150题第二十五题:验证回文串
49 0
|
8月前
|
canal 算法 数据可视化
LeetCode 125题:验证回文串
LeetCode 125题:验证回文串
|
8月前
|
存储 算法 Java
【经典算法】LeetCode 125. 验证回文串(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode 125. 验证回文串(Java/C/Python3实现含注释说明,Easy)
50 0