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

Kattis题目Job Expenses本地测试正常提交报RuntimeError求解

问题背景

我是编程新手,近期在Kattis平台练习编程题目,在求解Job Expenses题目时遇到异常:所有本地测试用例运行结果均正确,但提交代码后平台返回RuntimeError,暂未定位到问题原因,需要相关排查建议。

提交的原始代码
i =input()
k = input().split(" ")

summe=[]

for n in k:
    if int(n)<0:
        summe.append(int(n))
x=sum(summe)

print(abs(x))
问题排查与修复方案
  • 核心报错原因:代码中使用split(" ")做字符串分割存在逻辑缺陷。带固定空格参数的split方法仅会按单个空格做切割,当输入行存在首尾空格、连续多个空格时,切割结果会包含空字符串,后续执行int(n)转换空字符串时会直接抛出ValueError,触发运行时错误。
  • 基础修复:将input().split(" ")修改为input().split(),不带参数的split方法会自动忽略首尾空白字符,按任意长度的连续空白(空格、制表符、换行)做分割,不会产生无效空串。
  • 鲁棒性优化:放弃固定读两行的逻辑,一次性读取所有输入内容再做分割处理,避免因判题机输入换行格式和本地环境不一致导致的读入异常,参考代码如下:
import sys

nums = list(map(int, sys.stdin.read().split()))
# 第一个数是总记录数N,直接跳过即可
total_expense = sum(abs(num) for num in nums[1:] if num < 0)
print(total_expense)

注:原始代码中第一行读取的i变量没有被实际使用,虽然不会直接触发报错,但属于冗余代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 12:48:16