有没有人能够在 node.js
中成功提交 google code jam 2018 的解决方案?我对读取和输出数据的“样板”感兴趣。
事情就是我尝试过的,它说“运行时错误”,没有任何进一步的细节,所以我必须用另一种语言编写?
这个解决方案在本地对我有用。
此外,我将我的解决方案转换为另一种语言并且它刚刚工作,所以我很确定问题出在样板中,而不是在解决方案中。
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'));
最佳答案
您的代码的问题是您正在读取文件并写入文件。这就是为什么它适用于您本地。
Google Code Jam 竞赛格式在 2018 年发生了变化。您不再读取和写入文件,而是应该从标准输入读取并写入到标准输出。请参阅 relevant FAQ section here 。谷歌还为他们新的交互式数字猜测问题 here 发布了一个示例 nodejs javascript 解决方案。
您也可以引用 GitHub 上的 my solutions。我用它通过了资格赛。我还为我的解决方案创建了测试(基于 jest )。它还不是一个理想的样板文件,但希望它可以帮助您入门。
关于node.js - 谷歌代码堵塞 2018 node.js 样板,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49731802/