我正在解决一个数独,我有一个约束列表。它们看起来像这样:
(1,2,[1,2,3])
每个元组都包含行号、列号和该位置的可能值。现在我有以下代码来进行此约束:
[(row, column, notIn(matrix[row - 1], getColumn(matrix, column),
getSubgrid(matrix, row, column)))
for row in range(1, len(matrix) + 1)
for column in range(1, len(matrix) + 1)
if matrix[row - 1][column - 1] == 0]
我正在努力使我的代码更有效率,我的程序现在一直在施加所有约束,但是当它找到只有一个可能值的约束时,我希望它停止,如下所示:
(3,4,[2])
我想在列表理解中找到这样的元素时打破它,但该元素必须包含在列表中。否则,我想在找到约束时返回约束。可能没有只有一个可能值的约束,在这种情况下,我仍然需要所有约束。
我该怎么做?
猛跑小猪
qq_花开花谢_0
蝴蝶不菲
相关分类