Python数独3x3区块校验函数本地正常但学校评测程序功能校验失败求助
Python数独3x3区块校验函数本地正常但学校评测程序功能校验失败求助
我之前见过类似的数独校验问题,但这次想到了一个不算常见的解法。奇怪的是,这个函数在我本地测试是正常的,但提交到学校的评测系统后,功能校验没通过——明明应该返回false的场景,结果却不符合预期,实在摸不着头脑。
我的需求是实现一个函数,校验数独中指定行号(row_no)和列号(column_no)所在的3x3区块是否合法。
先贴出我的数独示例和函数代码:
sudoku = [ [9, 0, 0, 0, 8, 0, 3, 0, 0], [2, 0, 0, 2, 5, 0, 7, 0, 0], [0, 2, 0, 3, 0, 0, 0, 0, 4], [2, 9, 4, 0, 0, 0, 0, 0, 0], [0, 0, 0, 7, 3, 0, 5, 6, 0], [7, 0, 5, 0, 6, 0, 4, 0, 0], [0, 0, 7, 8, 0, 3, 9, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 3], [3, 0, 0, 0, 0, 0, 0, 0, 2] ] def block_correct(sudoku: list, row_no: int, column_no:int): correct = [1,2,3,4,5,6,7,8,9] # 用来对比的标准合法列表 n=0 # 行计数器 b=0 # 列计数器 check_sq= [] # 用来存储目标3x3区块的数字 # 后续逻辑还在处理中...
我的思路是:先把目标3x3区块里的所有数字收集到check_sq列表,然后和包含1-9的correct列表对比,判断是否合法。但现在不确定是不是在3x3区块的范围计算上出了问题?或者是处理空单元格(0)的时候有疏漏?毕竟本地的测试用例和学校评测的测试用例可能不一样,有没有大佬能帮我排查一下可能的坑点?
备注:内容来源于stack exchange,提问作者user3042850
相关产品推荐
相关产品推荐

