我在HS总结中的伙伴给了我这种算法,我希望有人可以告诉我是否有一种更雄辩的编码方式。
CB是当前的董事会职位(全球),它是列表的列表。

for a in xrange(0, 3):
  for b in xrange(0, 3):
    for j in xrange(1, 4):
      for k in xrange(1, 4):
        boxsum += CB[3a + j][3b + k]
        if not(boxsum == 45):
          return False
        boxsum = 0

最佳答案

首先,以下代码未正确缩进:

if not(boxsum == 45):
    return False
boxsum = 0


(使用当前缩进,它将始终在第一次执行此代码时失败)

其次,在以下行中:

boxsum += CB[3a + j][3b + k]


您可能打算这样做:

boxsum += CB[3*a + j][3*b + k]


最后,为了检查数独游戏的3x3部分,仅检查sum是不够的-您还应该检查是否存在1-9之间的每个数字(换句话说,所有数字都位于范围1-9,并且没有数字出现超过一次)。

关于python - (Python)在Sudoku中检查3x3,还有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24017092/

10-10 19:01