自己写的:
class Solution: def isPalindrome(self, s: str): # 将字符串转换为小写,以便进行大小写不敏感的比较 s_lower = s.lower() # 获取字符串的长度 n = len(s_lower) # 创建一个空列表,用于存储字母和数字 s_list = [] # 遍历字符串,将字母和数字添加到列表中 for i in range(n): if s_lower[i].isalpha() or s_lower[i].isdigit(): s_list.append(s_lower[i]) # 如果列表为空,说明原始字符串中没有字母和数字,是回文字符串 if not s_list: return True # 获取过滤后的列表的长度 n_list = len(s_list) # 如果过滤后的列表只包含一个字符,也是回文字符串 if n_list == 1: return True # 初始化首尾指针 first = 0 last = n_list - 1 # 使用双指针法检查是否为回文字符串 while first <= last: if s_list[first] == s_list[last]: first += 1 last -= 1 else: return False # 如果所有字符都匹配,是回文字符串 return True
gpt改进:
class Solution: def isPalindrome(self, s: str): # 将字符串转换为小写,以便进行大小写不敏感的比较 s_filtered = [char.lower() for char in s if char.isalnum()] # 如果过滤后的列表为空或者只包含一个字符,是回文字符串 return s_filtered == s_filtered[::-1]
标签:lower,验证,list,leedcode,列表,char,字符串,回文 From: https://www.cnblogs.com/yyyjw/p/18033800