125.验证回文串

137 阅读1分钟

125.验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,忽略大小写。空字符串有效。

输入: "A man, a plan, a canal: Panama"
输出: true
class Solution:
    def isPalindrome(self, s: str) -> bool:  # 左右双指针
        start, end = 0, len(s) - 1  # 头指针和尾指针
        while start < end:  # isalnum() 方法检测字符串是否由字母和数字组成
            if not s[start].isalnum():  # 头指针从头找,找到第一个数字或字符
                start += 1
                continue
            if not s[end].isalnum():  # 尾指针从尾找,找到最后一个数字或字符
                end -= 1
                continue
            if s[start].lower() != s[end].lower():
                return False  # 比较两者是否相同,不同就return False
            else:  # 相同则两指针往中间靠
                start += 1
                end -= 1
        return True  # 当 start > end的时候,return True