【Leetcode】【python】Valid Palindrome 验证回文串 发表于 2019-08-01 更新于 2021-08-22 分类于 旧文归档 阅读次数: Valine: 题目大意判断一个字符串是否是回文字符串,只考虑字母和数字,并且忽略大小写。注意点:空字符串在这里也定义为回文串 解题思路 去掉除了数字和字母之外的字符isalnum() 都改为小写 将数组(字符串)反过来,判断是否相等代码 1234567891011class Solution(object): def isPalindrome(self, s): """ :type s: str :rtype: bool """ ss = [] # 这里若用string也可以,但是大数据会TLE for char in s.lower(): if char.isalnum(): ss.append(char) return ss == ss[::-1] 双指针123456789101112131415161718192021222324252627class Solution: # @param s, a string # @return a boolean def isPalindrome(self, s): if not s: return True s = s.lower() cl = 0 cr = len(s)-1 while cl <= cr: if not s[cl].isalnum(): cl += 1 continue if not s[cr].isalnum(): cr -= 1 continue if s[cl] != s[cr]: return False cl += 1 cr -= 1 return True 总结