gpt4 book ai didi

javascript - CodeWars 挑战。哪个测试导致失败?

转载 作者:行者123 更新时间:2023-12-01 03:29:23 26 4
gpt4 key购买 nike

谁能找出这段代码有什么问题吗?我在 CodeWars 上运行代码并通过了除一个之外的所有测试...遗憾的是它没有显示该特定测试的输入内容,因此很难弄清楚。

以下是挑战说明:

新的《复仇者联盟》电影刚刚上映!电影院售票处有很多人排着长队。他们每个人都有一张 100 美元、50 美元或 25 美元的钞票。一张“复仇者联盟”门票售价 25 美元。

Vasya 目前是一名文员。他想向这条队伍中的每个人卖一张票。

如果 Vasya 最初没有钱,并且严格按照人们排队的顺序出售门票,那么他可以向每个人出售一张门票并找零吗?如果 Vasya 可以向每个人出售一张票并找零,则返回 YES。否则返回NO。

我发现,如果我将 amount50 >= 1 和 amount25 >= 1 的检查与 amount25 >= 3 交换,该代码适用于所有测试,但我不确定为什么会这样。

function tickets(peopleInLine){
let amount25 = 0;
let amount50 = 0;
let amount100 = 0;

for(let i = 0; i < peopleInLine.length; i++){

if(peopleInLine[i] === 100){
if(amount25 >= 3){
amount25 -= 3;
amount100++;
}else if(amount25 >= 1 && amount50 >= 1){
amount25 -= 1;
amount50 -= 1;
amount100++;
}else{
return "NO";
}
}

if(peopleInLine[i] === 50){
if(amount25 >= 1){
amount25--;
amount50++;
} else {
return "NO";
}
}

if(peopleInLine[i] === 25){
amount25++;
}
}
return "YES";
}

最佳答案

在 Codewars 上,当您无法弄清楚代码或代码中出了什么问题时,您可以在代码中放置 console.log 语句(或 JavaScript 以外的语言中的等效语句),以打印输入参数或其他变量。您对输入的假设。我刚刚对您的代码执行了此操作,发现您的代码失败的测试是 [ 25, 25, 25, 25, 50, 100, 50 ],因此这应该准确地向您展示为什么您的代码在响应时会失败拿到 100 美元,你首先尝试归还 3 美元 25 美元作为找零,而不是先检查 50 美元和 25 美元——你会收到 4 美元 25 美元,你将其中的一个作为零钱给第一个有 50 美元的人,但随后因为你给了剩下的三张 25 美元(而不是 50 美元和一张 25 美元)作为拥有 100 美元的人的零钱,您不再有 25 美元来为最后一个人的 50 美元找零。

关于javascript - CodeWars 挑战。哪个测试导致失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44622576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com