gpt4 book ai didi

python - 倒下的多米诺骨牌,调试

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:53:57 24 4
gpt4 key购买 nike

这是我正在尝试编写的程序:

用户给出了一些多米诺骨牌的属性,有的是垂直的,有的是水平的,并且是n行m列。假设我们从上面看:一个水平的多米诺骨牌既可以向右倒,也可以向左倒,并且只能使其他水平的多米诺骨牌倒下。垂直多米诺骨牌可以向上或向下倒下,并且只会导致其他垂直多米诺骨牌倒下。

首先用户会给我们行数和列数'n m',在接下来的n行输入中,用户会给出每行由m个字符组成,例如m=5:|| -|- '|'代表水平的,'-'代表垂直的多米诺骨牌。

现在程序应该确定我们必须插入的最少数量的多米诺骨牌才能使它们全部倒下。

这是问题中的例子:

输入:

3 3
|||
||-
||-

输出:

4

我们推每一行的第一个多米诺骨牌和第三列的第二个(从左到右)

这是我的代码:

dim = input()
n, m = [int(i) for i in dim.split(' ')]
min_d = 0
vertical = []
for q in range(0, m):
vertical.append(n)

for j in range(0, n):
line = list(input())
# horizontal:
if line[0] == '|':
min_d += 1
for l in range(1, m):
if line[l] == '|':
if line[l-1] == '-':
min_d += 1
# vertical:
if j == 0:
for k in range(0, m):
if line[k] == '-':
min_d += 1
vertical[k] = 0
if j > 0:
for p in range(0, m):
if line[p] == '-':
if vertical[p] != j-1:
min_d += 1
vertical[p] = j

print(min_d)

它适用于上面的示例和我手动编写和计算的其他一些示例。但是当我在网站上提交这个时,我得到了“错误的答案!”对于所有的测试!这有什么问题吗?

最佳答案

因此,这听起来更像是找出问题在说什么而不是代码,假设每个多米诺骨牌只能知道紧挨着他们并且面向相同方向的多米诺骨牌是不是特别困难。有没有可能这个问题实际上更复杂,并且在两个相似面对的多米诺骨牌之间打翻多米诺骨牌可以让多米诺骨牌相互碰撞的路径?

例如:

3 3
|-|

可以有输出

2

因为,先把中间的多米诺骨牌打翻,就可以把左边的多米诺骨牌撞到右边的骨牌上。

关于python - 倒下的多米诺骨牌,调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519532/

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