谷歌代码果酱2018年node.js样板

kir*_*oid 2 node.js

是否有人能够成功提交Google Code Jam 2018解决方案node.js?我对读取和输出数据的“样板”感兴趣。

事情是我尝试过的,它说“运行时错误”,没有任何更多细节,所以我不得不用另一种语言编写?

此解决方案在本地对我有效。

我也将我的解决方案转换为另一种语言,并且它可以正常工作,所以我很确定问题出在样板中,而不是解决方案中。

const fs = require('fs');

function solve(shield, program) { ... }

var content = fs.readFileSync(0, 'utf8');
var lines = content.split(/\r?\n/);
var cases = +lines[0];

var out = [];
for (var i = 1; i <= cases; i++) {
    var [shield, program] = lines[i].split(' ');
    var result = solve(+shield, program);
    out.push(`Case #${i}: ${result === -1 ? 'IMPOSSIBLE' : result}`);
}

fs.writeFileSync(1, out.join('\n'));
Run Code Online (Sandbox Code Playgroud)

Gan*_*Gan 6

代码的问题是您正在从文件读取并向文件写入。这就是为什么它在本地为您工作的原因。

Google Code Jam竞赛格式在2018年发生了变化。您不再需要读取和写入文件,而应该从标准输入读取并写入标准输出。请参阅此处相关常见问题解答部分。谷歌还发布了样品为的NodeJS的新的互动猜数问题JavaScript的解决方案在这里

您也可以在GitHub上参考我的解决方案。我通过了资格赛。我还为解决方案创建了测试(基于jest)。它不是理想的样板,但希望它可以帮助您入门。