前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 680. 验证回文字符串 Ⅱ

LeetCode 680. 验证回文字符串 Ⅱ

作者头像
freesan44
发布2020-06-08 10:50:41
3970
发布2020-06-08 10:50:41
举报
文章被收录于专栏:freesan44freesan44

题目

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

代码语言:javascript
复制
示例 1:

输入: "aba"
输出: True
示例 2:

输入: "abca"
输出: True
解释: 你可以删除c字符。

注意:

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

解题思路

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

代码语言:javascript
复制
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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解题思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档