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

递归移除字符串中奇数的函数如何兼容负号及非数字字符

递归移除奇数数字函数修改方案

核心修改逻辑

在原有判断奇偶的逻辑前,先校验当前字符是否为数字:

  • 非数字字符直接保留,无需做数值判断
  • 仅当字符为数字时,再判断是否为偶数,偶数保留、奇数移除

修改后代码

def removeOddDigits(inString):
    # base case 空字符串直接返回
    if inString == "":
        return inString
    current_char = inString[0]
    # 先判断是否为数字
    if not current_char.isdigit():
        # 非数字直接保留,继续处理剩余字符
        return current_char + removeOddDigits(inString[1:])
    # 是数字再判断奇偶
    if int(current_char) % 2 == 0:
        return current_char + removeOddDigits(inString[1:])
    else:
        return removeOddDigits(inString[1:])
        
print(removeOddDigits(input("Enter String:")))

效果验证

  • 输入54364 → 输出464,原有功能正常
  • 输入4234 → 输出424,原有功能正常
  • 输入-123a45 → 输出-2a4,负号和非数字字符正常保留,奇数数字被移除
  • 输入-789 → 输出-8,负号场景适配成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:48:00