You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LeetCode有效回文(Valid Palindrome)问题Python解法输出错误求助

代码错误原因分析
  • 执行逻辑顺序完全颠倒:你先拿未清洗的原始字符串直接判断是否等于逆序,测试用例的原始字符串包含空格、标点,逆序后和原串完全不一致,会直接进入else分支break,后续的字符串清洗逻辑根本没有执行。
  • 正则匹配规则不符合题目要求:题目要求保留字母和数字两类字符,你写的正则[^a-zA-Z]仅保留字母,会把所有数字过滤掉。
  • 替换逻辑写死固定值:regex.sub('', 'ab3d*E') 直接使用了固定字符串ab3d*E做处理,完全没有用到输入的参数s,不管输入什么内容处理的都是这个固定串,逻辑完全错误。
  • 返回值类型不匹配:题目要求返回布尔值判断结果,你返回的是处理后的小写字符串,类型不符合要求。
  • 多余的for循环无任何意义:循环要么第一次就return,要么第一次就break,整个循环结构完全冗余,import语句写在分支内部也不符合编码规范。
修正后的代码
import re
class Solution:
    def isPalindrome(self, s: str) -> bool:
        # 清洗字符串:过滤非字母数字字符,统一转小写
        s_clean = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
        # 判断是否为回文
        return s_clean == s_clean[::-1]
验证说明

测试用例s = "A man, a plan, a canal: Panama"清洗后得到字符串amanaplanacanalpanama,和自身逆序完全一致,返回结果为True,符合题目预期。

内容的提问来源于stack exchange,提问作者jkjhrmv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:06:01