题目大意:
验证回文字符串,忽略大小写,空格
解题思路:
1.全转化为小写
2.左右指针标记,左要小于右,进入循环
3.非字母数字直接移动指针
4.左右相同,同时移动指针
5.左右不同直接返回错误
提交代码:(Runtime: 48 ms, faster than 69.48 % )
class Solution:
def isPalindrome(self, s: str) -> bool:
s = s.lower()
left, right = 0, len(s)-1
while left < right:
a = s[left]
b = s[right]
if not ((s[left] >= 'a' and s[left] <= 'z') or (s[left] >= '0' and s[left] <= '9')):
left += 1
continue
if not ((s[right] >= 'a' and s[right] <= 'z') or (s[right] >= '0' and s[right] <= '9')):
right -= 1
continue
if s[left] == s[right]:
left += 1
right -= 1
else:
return False
return True