给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false
class Solution(object):
def isPalindrome(self, s):
"""
:type s: str
:rtype: bool
"""
n=len(s)
left,right=0,n-1
while left<right:
while left<right and not s[left].isalnum(): #isalnum()是python 的一个函数用来检测字符串是否由字母和数字组成,如果有空格则返回False
left+=1
while left<right and not s[right].isalnum():
right-=1
if left<right:
if s[left].lower()!=s[right].lower(): #lower() 是python的一个函数用来转换字符串中所有大写字符为小写
return False
else:
left,right=left+1,right-1
return True