046-力扣刷题-125--验证回文串

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

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true

示例 2:

输入: "race a car" 输出: false

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class Solution(object):
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        i,j=0,(len(s)-1)  #设置两个查询指针,一个在前,一个在后,注意加括号
        while i< j:  #当i,j的时候就一直比对
            while i<j and not s[i].isalnum():  #如果说i<j并且 s[i]这个字符是非正文字符(例如,空格等)的话,需要将i指针向前移动
                i+=1
            while i<j and not s[j].isalnum():
                j-=1
            if s[i].lower()!=s[j].lower():  #如果前后的字符不一致就返回False
                return False
            i+=1  #如果一致就继续向下判断
            j-=1
        return True

主要是用了python的一个函数 isalnum() 判断的是一个字符是不是正文字符也就是abx123这种