leedcode 验证回文串

自己写的:

复制代码
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]

 

posted @   Junior_bond  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示