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这种