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

字符串中整数求和(7kyu)代码问题求助

问题分析与修复方案

你的代码存在的核心问题

  • 函数提前返回:循环内部的return sum会让函数在处理第一个字符后立刻终止,完全没遍历整个字符串,这是导致所有测试用例失败的最关键原因。
  • 无效的类型判断:x是字符串中的单个字符,类型永远是str,isinstance(x, int)和isinstance(x, float)永远为False,这两个判断完全多余。
  • 错误的总和重置逻辑:遇到非数字字符就把sum重置为0,会清空之前累加的有效数字,比如"h3ll0w0rld"中,处理完'3'后遇到'l'就会把总和清0,后续的'0'无法正确累加。
  • 未处理连续数字:题目要求求和的是字符串中的完整整数(比如"12.4"里的12和4),而你的代码只处理单个数字字符,不符合题目要求。

修复后的实现代码

def sum_of_integers_in_string(s):
    total = 0
    current_num = ""
    for char in s:
        if char.isdigit():
            # 收集连续的数字字符
            current_num += char
        else:
            # 遇到非数字时,若已收集到数字则累加并重置
            if current_num:
                total += int(current_num)
                current_num = ""
    # 处理字符串末尾剩余的未累加数字
    if current_num:
        total += int(current_num)
    return total

逻辑说明

  1. 用current_num变量临时存储连续的数字字符,确保能拼接出完整的整数。
  2. 遍历字符串时,遇到数字就追加到current_num;遇到非数字且current_num不为空时,将其转为整数累加到总和,再清空current_num。
  3. 遍历结束后检查current_num,避免遗漏字符串末尾的数字。

该实现可以正确通过所有给出的测试用例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:35:40