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

Python函数问题:筛选偶长回文字符串结果异常排查

问题排查与修复:筛选偶长度回文字符串

错误点分析

  1. is_palindrome函数返回值设计错误
    原函数中,字符串是回文时返回原字符串,非回文时返回空元组()。这导致后续判断len(is_palindrome(sample))%2==0时,非回文字符串对应的返回值长度为0(偶数),会被错误纳入结果。比如"python"不是回文,但len(is_palindrome("python"))为0,满足偶数条件,因此被误选。

  2. even_length_palindromes函数逻辑错误
    原逻辑判断的是is_palindrome返回值的长度是否为偶数,而非字符串本身是回文且长度为偶数,完全偏离了需求目标。

修复后的代码

def is_palindrome(string):
    # 直接返回布尔值,标记是否为回文
    return string == string[::-1]

def even_length_palindromes(strings):
    # 同时满足两个条件:是回文,且长度为偶数
    return [s for s in strings if is_palindrome(s) and len(s) % 2 == 0]

# 测试
print(even_length_palindromes(["radar", "level", "python", "noon", "racecar"]))

修复说明

  • is_palindrome改为返回布尔值,明确标记字符串是否为回文,避免了返回值类型混乱带来的错误判断。
  • even_length_palindromes使用列表推导式,同时校验两个核心条件:字符串是回文、字符串长度为偶数,精准筛选出符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:17:39