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

使用递归实现回文检测的Python代码运行异常求修正

递归实现回文检测代码修正

原代码错误点

  • 函数checkPalindrome定义在无意义的for循环中,重复定义无任何作用
  • 递归子串截取逻辑错误:str[1::-1] 是取索引1及之前的字符反转,并未实现「去掉首尾字符后递归校验」的需求,正确截取逻辑应为str[1:-1]
  • 输入处理逻辑错误:[input().split() for i in range(T)] 会将每行输入拆分为列表,且直接把整个测试用例列表传入检测函数,未逐个处理每个输入字符串
  • 未打印函数返回结果,导致运行后看不到检测输出
  • 变量名使用了Python内置类型名str,存在命名冲突风险

修正后可运行代码

def checkPalindrome(input_str):
    l = len(input_str)
    if l == 0 or l == 1:
        return "It is a palindrome"
    if input_str[0] != input_str[-1]:
        return "It is not a palindrome"
    # 截取去掉首尾字符的子串,递归校验
    str_new = input_str[1:-1]
    return checkPalindrome(str_new)

T = int(input("Number of test cases: "))
for _ in range(T):
    test_str = input().strip()
    res = checkPalindrome(test_str)
    print(res)

功能验证说明

输入测试用例数量后,逐行输入待检测字符串即可输出对应判断结果,例如输入aba返回「It is a palindrome」,输入abc返回「It is not a palindrome」,符合功能预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:36:03