【问题标题】:How on earth does this code work这段代码到底是如何工作的
【发布时间】:2018-06-03 11:00:05
【问题描述】:

我对这段代码的工作方式有点困惑。它的作用是检查车子是否可以移动到某个地方而不会受到另一个根的攻击。 代码如下:

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

【问题讨论】:

  • 输入是什么? chessboard有什么数据?
  • 这个代码似乎没用恕我直言。
  • 我还在学习,IMCoins

标签: python for-loop jupyter-notebook


【解决方案1】:

车可以水平或垂直移动。因此,如果他们在棋盘的同一行或列中,即至少有两个车在同一行或列中,则一个车可以攻击另一个车。

这段代码似乎假设棋盘中唯一的棋子是车。如果一个正方形有一块,则列表元素的值为1,否则为0

第一个for 循环遍历棋盘的每一行,计算该行中有棋子的方格数。如果计数大于1,则表示车不安全,返回false

第二个for 循环做同样的事情,但按列而不是按行。

如果两个循环都没有返回false,则表示所有车都是安全的,最后返回true

【讨论】:

    猜你喜欢
    • 2011-05-16
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 2013-12-05
    • 1970-01-01
    相关资源
    最近更新 更多