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

求可用2018 Google Code Jam Node.js提交模板,本地正常提交报运行错误

当然有不少开发者成功用Node.js搞定过2018 Google Code Jam的提交!你的runtime error大概率是输入输出的处理方式没适配Code Jam的在线评判环境——本地用fs读文件没问题,但在线环境是通过标准输入输出传递数据的,直接读文件肯定会报错。

给你一个经过验证的模板,专门解决这个问题:

适配Google Code Jam的Node.js模板

这个模板用标准输入输出处理数据,完全符合Code Jam的评判要求:

const readline = require('readline');

// 建立标准输入的读取接口
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    terminal: false
});

let inputBuffer = [];
let linePointer = 0;

// 逐行收集输入内容
rl.on('line', (line) => {
    inputBuffer.push(line.trim());
});

// 所有输入读取完毕后执行解题逻辑
rl.on('close', () => {
    // 读取测试用例总数
    const testCaseCount = parseInt(inputBuffer[linePointer++]);
    
    for (let caseNum = 1; caseNum <= testCaseCount; caseNum++) {
        // 根据题目要求读取当前测试用例的输入
        // 示例:这里读一行作为当前用例的输入,你可以根据题目调整读取行数
        const currentInput = inputBuffer[linePointer++];
        
        // 调用你的解题函数
        const result = solve(currentInput);
        
        // 严格按照Code Jam要求的格式输出结果
        console.log(`Case #${caseNum}: ${result}`);
    }
});

// 替换成你自己的解题逻辑
function solve(input) {
    // 示例:返回输入内容的大写形式,实际替换为你的算法
    return input.toUpperCase();
}

关键注意事项(帮你避坑)

  • 绝对不要用fs模块读文件:在线评判系统不会提供本地测试文件,所有输入都来自标准输入,用fs会直接触发文件不存在的错误,导致runtime error。
  • 严格遵守输出格式:必须是Case #X: 结果的格式,大小写、空格都不能错,哪怕结果正确,格式不对也会被判失败。
  • 确保输入读取完成再处理:readline是异步的,一定要在close事件里执行解题逻辑,不然可能还没读完所有输入就开始处理,导致数据缺失。
  • 处理异步逻辑(如果有的话):如果你的解题函数里有异步操作(比如Promise),要改用async/await确保逻辑执行完毕再输出结果,避免程序提前退出。

你之前的代码用了fs,这应该就是问题根源——本地能读到你自己的测试文件,但在线环境里没有这个文件,直接抛出错误。把你的solve逻辑移到这个模板里,应该就能正常提交了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:11:32