-- coding: utf-8 --

九宫格代码

定义九宫格类

class Sudoku: # 初始化九宫格 def init(self, matrix): self.matrix = matrix

# 打印九宫格
def print_matrix(self):
    for i in range(9):
        for j in range(9):
            print(self.matrix[i][j], end=' ')
        print()

# 检查行是否合法
def check_row(self, row):
    nums = set()
    for i in range(9):
        if self.matrix[row][i] in nums:
            return False
        if self.matrix[row][i] != 0:
            nums.add(self.matrix[row][i])
    return True

# 检查列是否合法
def check_col(self, col):
    nums = set()
    for i in range(9):
        if self.matrix[i][col] in nums:
            return False
        if self.matrix[i][col] != 0:
            nums.add(self.matrix[i][col])
    return True

# 检查宫是否合法
def check_box(self, row, col):
    nums = set()
    for i in range(row, row + 3):
        for j in range(col, col + 3):
            if self.matrix[i][j] in nums:
                return False
            if self.matrix[i][j] != 0:
                nums.add(self.matrix[i][j])
    return True

# 检查整个九宫格是否合法
def is_valid(self):
    for i in range(9):
        if not self.check_row(i):
            return False
        if not self.check_col(i):
            return False
    for i in range(0, 9, 3):
        for j in range(0, 9, 3):
            if not self.check_box(i, j):
                return False
    return True

测试九宫格类

if name == 'main': matrix = [ [5, 3, 0, 0, 7, 0, 0, 0, 0], [6, 0, 0, 1, 9, 5, 0, 0, 0], [0, 9, 8, 0, 0, 0, 0, 6, 0], [8, 0, 0, 0, 6, 0, 0, 0, 3], [4, 0, 0, 8, 0, 3, 0, 0, 1], [7, 0, 0, 0, 2, 0, 0, 0, 6], [0, 6, 0, 0, 0, 0, 2, 8, 0], [0, 0, 0, 4, 1, 9, 0, 0, 5], [0, 0, 0, 0, 8, 0, 0, 7, 9] ] sudoku = Sudoku(matrix) sudoku.print_matrix() print('是否合法:', sudoku.is_valid())

卷首语我是谁给我写一个卷首语在这个瞬息万变的时代我们不断面临各种挑战与机遇。作为一个独立思考的个体我们需要不断探索自己、认清自己才能更好地应对未来的发展。在这里我想与大家分享我的一些思考和观察希望能够启发大家的思维激发更多的灵感和创意。我是谁?这是一个深刻的哲学问题也是一个永恒的话题。每个人都有自己独特的人生经历和价值观而我也不例外。我是一个充满热情和好奇心的人喜欢探索未知的领域不断挑战自己的极限

原文地址: https://www.cveoy.top/t/topic/b4Qb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录