Python 检查N皇后上的对角线

Python 检查N皇后上的对角线,python,loops,python-3.x,Python,Loops,Python 3.x,•对角线冲突(板、r、c): 给定一个电路板和两个指示行/列位置的整数, 确定皇后是否已放置在与坐标(r,c)相同的对角线上;将答案返回为 布尔型 例子 o对角线冲突([[True,False],[False,False]],1,1)→ 真的 o对角_冲突([[True,False],[False,False]],1,0)→ 假的 一,;我已经弄明白了这三件事 从r和c中减去1,直到超出r或c为负值的界限 在r和c中加1,直到超出边界。哪个是len(董事会) r加1,c减1(这是为了使对角线朝相

对角线冲突(板、r、c)

给定一个电路板和两个指示行/列位置的整数, 确定皇后是否已放置在与坐标(r,c)相同的对角线上;将答案返回为 布尔型

例子

o对角线冲突([[True,False],[False,False]],1,1)→ 真的

o对角_冲突([[True,False],[False,False]],1,0)→ 假的

一,;我已经弄明白了这三件事

  • 从r和c中减去1,直到超出r或c为负值的界限

  • 在r和c中加1,直到超出边界。哪个是len(董事会)

  • r加1,c减1(这是为了使对角线朝相反方向移动)

  • 但是不知道如何开始为它编写代码。我知道我需要3个以上的每一个循环。 我最好的是

    def conflict(board,r,c):
          for (r,c) in board
              if r+1==r and...
    

    很确定这是错误的,但是,有人能把我的想法写进python代码吗?

    你的想法都是对的。有人说,如果你会说英语,你就可以写Python。给你一个提示,如果你改写了问题中使用“直到”这个词的每一句话,让它使用“while”这个词,那会怎么样

    比如说,

    从r和c中减去1,直到超出r或c为负值的界限

    可以重写为

    虽然r和c不是负数,但从r中减去1,从c中减去1

    Python随后变得显而易见:

    while r >= 0 and c >= 0:
        # check for a queen
        r -= 1
        c -= 1
    

    你的想法都对。有人说,如果你会说英语,你就可以写Python。给你一个提示,如果你改写了问题中使用“直到”这个词的每一句话,让它使用“while”这个词,那会怎么样

    比如说,

    从r和c中减去1,直到超出r或c为负值的界限

    可以重写为

    虽然r和c不是负数,但从r中减去1,从c中减去1

    Python随后变得显而易见:

    while r >= 0 and c >= 0:
        # check for a queen
        r -= 1
        c -= 1
    

    你可以在四个方向找到女王

  • r和c递减
  • r递减c递增
  • r增加c减少
  • r和c增加
  • 如果你知道皇后的位置,你应该检查r,c和皇后坐标的斜率是1还是-1,那么它们在同一条对角线上

    下面是一些python代码

    def diagonal_conflict(board, r, c):
        for i in range(len(board)):
            for j in range(len(board[i])):
                if board[i][j] and (float(c-j)/(r-i) in (1, -1)):
                    return True
        return False
    

    你可以在四个方向找到女王

  • r和c递减
  • r递减c递增
  • r增加c减少
  • r和c增加
  • 如果你知道皇后的位置,你应该检查r,c和皇后坐标的斜率是1还是-1,那么它们在同一条对角线上

    下面是一些python代码

    def diagonal_conflict(board, r, c):
        for i in range(len(board)):
            for j in range(len(board[i])):
                if board[i][j] and (float(c-j)/(r-i) in (1, -1)):
                    return True
        return False
    

    给你。我只是为你做的;)


    给你。我只是为你做的;)


    你的想法都对。有人说,如果你会说英语,你就可以写Python。给你一个提示,如果你重写了问题中使用“直到”这个词的每一句话,这样它就使用了“while”这个词呢?你有所有正确的想法。有人说,如果你会说英语,你就可以写Python。给你一个提示,如果你重写了问题中使用“直到”一词的每个句子,使其使用“while”?我没有投反对票,但这个问题不是被标记为
    python
    ?一个新手不太可能擅长代码翻译。很好的一点,也许我会改写伪代码。在某种程度上,我认为伪代码是他已经拥有的。是的,我知道我想要什么,但我一直在研究如何用python构造它以通过我的测试。def diagonal_conflict(board,r,c):虽然不是(rI没有否决,但这个问题不是被标记为python吗??一个新手不太可能擅长代码翻译。说得好,也许我会改写伪代码。从某种程度上说,我认为伪代码是他已经拥有的。是的,我知道我想要什么,但我一直在研究如何用python构建它以通过测试。def diagonal\u冲突(board,r,c):虽然不是(Rhanks!但是定义必须准确地使用board,r,c才能通过测试…任何修正?@Jessica:我已经修改了它并添加了abhaybhatia的解决方案。@Jessica-如果zondo的答案解决了你的问题,你可能应该接受它:)谢谢!但是定义必须准确地使用board,r,c才能通过测试…有什么修正吗?@Jessica:我已经修改了它并添加了abhaybhatia的解决方案。@Jessica-如果zondo的答案解决了你的问题,你可能应该接受它:)