Python双端队列实现回文检测代码示例( 二 )


重复上述判断 , 直至low和high重合 , 此时表示完成了字符串s内前后元素的一一对比判断 , 返回True即可 。
代码如下
【Python双端队列实现回文检测代码示例】class Solution(object):def isPalindrome(self, s):""":type s: str:rtype: bool"""low = 0high = len(s) - 1#在字符串为空或只有一个字符时 , 返回Trueif len(s) <= 1:return True# 设定low和high对比的条件while low < high:# 如果不是字母或数字 , low往后移一位【low < high为必须条件 , 不然会造成索引越界】while not s[low].isalnum() and low < high:low += 1# 如果不是字母或数字 , high往前移一位while not s[high].isalnum() and low < high:high -= 1# 判断:如果相同 , 继续下一次对比;如果不相同 , 直接返回Falseif s[low].lower() == s[high].lower():low += 1high -= 1else:return False# low和high重合 , 即退出循环 , 表示前后都是一一对应的 , 返回Truereturn True