javascript - 在 google kickstart 中,我怎么知道为什么我通过了测试集 1 而失败了测试集 2?
问题描述
我是 Google kickstart 的新手,我发现我很难弄清楚为什么我通过了一个测试集但没有通过另一个测试集,有什么地方可以让我看到测试集吗?我正在处理关于 Round A, 2018 的第一个问题,这是我使用 javascript 的解决方案:
//read input, output the answer
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let t
let count = 1
let result
rl.on("line", function(line) {
if (t === undefined) {
t = line
} else {
result = `Case #${count}: ${solve(line)}`
console.log(result)
if (++count > t) {
rl.close()
}
}
}).on("close", function() {
process.exit(0)
})
function solve(num) {
const digits = num.split("")
num = Number(num)
for (let i = 0; i < digits.length; i++) {
let digit = Number(digits[i])
digits[i] = digit
//find the first odd digit and increase/decrease it by 1, followed by all 0 or all 8
if (digit % 2 === 1) {
if (digit !== 9)
return Math.min(Math.abs(num - calculateAllEvenNum(i, digit - 1, 8, digits)), Math.abs(num - calculateAllEvenNum(i, digit + 1, 0, digits)))
else
return Math.abs(num - calculateAllEvenNum(i, digit - 1, 8, digits))
}
}
return 0
}
function calculateAllEvenNum(startOfOdd, evenDigit, remain, digits) {
const len = digits.length
let allEvenNum = 0
for (let i = 0; i < len; i++) {
if (i > startOfOdd) {
allEvenNum = allEvenNum * 10 + remain
} else if (i === startOfOdd) {
allEvenNum = allEvenNum * 10 + evenDigit
} else {
allEvenNum = allEvenNum * 10 + digits[i]
}
}
return allEvenNum
}
解决方案
推荐阅读
- python-3.x - 从 Pandas 创建的 CSV 中的索引中删除特定数据
- vue.js - 导入组件vue js的正确方法
- python - 如何绘制坐标散点图
- scala - Spark DataFrame 中更惯用的日期转换为 ISO 8601 日期
- pytorch - 使用 CrossEntropyLoss 的 PyTorch 多类分类 - 不收敛
- c# - 反序列化多个 JSON 变量时遇到问题
- javascript - Jquery Kendo Grid - 手动插入行时显示重复行的方法
- python - 使用多处理时如何避免内存溢出错误?
- java - 使用 JAVA 检查两个数组是否相等的方法,尽管顺序不同。我收到有关我的退货声明的错误
- python - 我想生成一个包含 list2 元素的新列表。后跟 list1 的元素以相反的顺序