leetcode—125.验证回文串 & 680.验证回文字符串II

题目125:验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。

解答:

class Solution:
    def isPalindrome(self, s: str) -> bool:
        if not s:
            return True
        s=s.lower()
        j=len(s)-1
        i=0
        while i<j:
            if not s[i].isalnum():
                i+=1
                continue
            if not s[j].isalnum():
                j-=1
                continue
            if s[i]==s[j]:
                i+=1
                j-=1
            else:
                return False
        return True

题目680:验证回文字符串II
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
leetcode—125.验证回文串 & 680.验证回文字符串II_第1张图片
解答:

class Solution:
    def validPalindrome(self, s: str) -> bool:
        isPalindrome = lambda x : x == x[::-1]
        left, right = 0, len(s) - 1
        while left < right:
            if s[left] == s[right]:
                left += 1
                right -= 1
            else:
                return isPalindrome(s[left + 1 : right + 1]) or isPalindrome(s[left: right])
        return True

你可能感兴趣的:(leetcode,Python)