我正在写一个程序,找出一个游戏是可解的还是不可解的。 游戏规则是:
我必须检查我们是否能到达另一端,它总是等于0。
如果我们能到达最右边(即0),那么它是可解的,否则不可解
我试过在Python中使用递归,但不知道如何继续
def KAuhop(b,c,d,current_position):
position_move=b[current_position]
if b[current_position+position_move]==0:
print("found")
else:
KAuhop(b,current_position+position_move,d,current_position)
print("Not found")
a=[4,4,1,5,2,6,3,4,2,0]
print(KAuhop(a,0,len(a)-1,0))
如果它可以左跳或右跳,那么请说明程序应该何时结束或退出,否则它将成为从一个位置跳到另一个位置的无限循环。你知道吗
请找到下面的解决方案,只有右跳转使用递归函数。你知道吗
在这里,我们跟踪您在
set
对象中已经看到的位置:本质上,您可以使用递归来检查每个可能的路径。考虑您当前的位置:如果您在任一方向都超出了边界,或者您已经检查了该位置(它在
seen
),那么返回False
。否则,按所见标记位置,检查左跳和右跳,如果左跳或右跳成功,则返回。注意:我使用了一个helper内部函数。这让我不必一直传递seen
集,因为helper
是在seen
上闭合的,因此maxlen
。你知道吗现在我想知道是否有比暴力更好的方法。你知道吗
相关问题 更多 >
编程相关推荐