gpt4 book ai didi

python - 为什么我的代码不能涵盖所有情况? - Codewars 中的 Python 3 赌场筹码挑战

转载 作者:行者123 更新时间:2023-12-02 19:20:33 25 4
gpt4 key购买 nike

我是编程初学者,几周前才开始学习。当我没有太多时间时,我会进行代码大战,捕获一些东西来思考如何解决,这次是赌场挑战。我想出了一个感觉可以涵盖所有内容的方法,但在 208 个案例中,有 4 个案例仍然失败,我陷入了困境。

挑战如下:

该挑战称为赌场筹码。有 3 堆筹码,白色、绿色、黑色筹码。

每天你只取 2 个筹码,而且它们的颜色不能相同。我必须归还在这些条件下我可以领取筹码的最大天数。每天必须服用 2 个,并且颜色必须不同。

示例:[1,2,1] <= (1white, 2 green, 1 black) => 返回:2 天[4,1,1] => 2,[8,1,4] => 5 等

禁止暴力破解。

这是我的代码

def solve(arr):
arr.sort()
s = arr[0] + arr[1]
if arr == [1,1,1]:
return arr[0]
elif arr[0] + arr[1] <= arr[2]:
return s
elif arr[1] == arr[2] and arr[1] != arr[0]:
m = arr[0] - 1 + arr[1]
return m
elif arr[0] == arr[1] and arr[0] == arr[2]:
d = arr[0] / 2 + arr[1]
return int(d)
elif arr[0] + arr[1] > arr[2]:
e = (arr[0] + arr[1] + arr[2]) / 2
return int(e)

我小时候跳过了数学课,导致跟不上,所以我的数学知识是0

有什么想法我的代码没有涵盖哪些选项,或者有人知道可以完成工作的公式吗?或者您将如何亲自编码?

最佳答案

你的第三种情况是错误的,一个反例是arr = [3,4,4]

然而更有趣的是,你的案例 2 和 5 一起涵盖了所有可能性并已经正确解决了它们:

def solve(arr):
arr.sort()
s = arr[0] + arr[1]
if s <= arr[2]: #your case 2
return s
else: #your case 5
e = (arr[0] + arr[1] + arr[2]) / 2
return int(e)

关于python - 为什么我的代码不能涵盖所有情况? - Codewars 中的 Python 3 赌场筹码挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63122337/

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