我对这段代码的工作原理有点困惑。它所做的是检查车块是否可以移动到某个地方而不被另一根攻击。 代码如下:
def rooks_are_safe(chessboard):
n = len(chessboard)
for row_i in range(n):
row_count = 0
for col_i in range(n):
row_count += chessboard[row_i][col_i]
if row_count > 1:
return False
for col_i in range(n):
col_count = 0
for row_i in range(n):
col_count += chessboard[row_i][col_i]
if col_count > 1:
return False
return True
车可以水平或垂直移动。因此,一辆车可以攻击另一辆车,如果他们在同一行或列的棋盘,即至少有两辆车在同一行或列。你知道吗
这段代码似乎假设棋盘上只有车。如果一个正方形有一块,那么list元素的值是
1
,否则就是0
。你知道吗第一个
for
循环遍历棋盘的每一行,计算该行中有一个棋子的方块数。如果计数大于1
,则rooks不安全,并返回false
。你知道吗第二个
for
循环做同样的事情,但是按列而不是按行进行。你知道吗如果两个循环都不返回
false
,则表示所有的rook都是安全的,并且在最后返回true
。你知道吗相关问题 更多 >
编程相关推荐