给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。
本题中,将空字符串定义为有效的 回文串 。
示例 1:
输入: s = "A man, a plan, a canal: Panama"
输出: true
解释:"amanaplanacanalpanama" 是回文串
示例 2:
输入: s = "race a car"
输出: false
解释:"raceacar" 不是回文串
class Solution:
def isPalindrome(self, s: str) -> bool:
# res = []
# s = s.lower()
# for char in s:
# if char.isalnum():
# res.append(char)
# return res == res[::-1]
left, right = 0, len(s) - 1
while left <= right:
if not s[left].isalnum():
left += 1
elif not s[right].isalnum() and right > left:
right -= 1
else:
if s[left].lower() != s[right].lower():
return False
left += 1
right -= 1
return True
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交