← 返回题库
中级

Sudoku Grid

未完成 0%
中级参考 代码结构已给出,请填写 ____ 处
# Write your solution here
def solve(____):
    for row in range(____, ____):
        if not row_correct(____):
            return False
    
    for column in range(____, ____):
        if not column_correct(____):
            return False
        
    for row in range(____, ____, ____):
        for column in range(____, ____, ____):
            if not block_correct(____):
                return False
            
    return True
        



def row_correct(____):
    seen_numbers = []
    for number in sudoku[row_no]:
        if number != ____:
            if number in seen_numbers:
                return False
            seen_numbers.append(____)

    return True

def column_correct(____):
    seen_numbers = []
    for row in sudoku:
        number = row[column_no]
        if number != ____:
            if number in seen_numbers:
                return False
            seen_numbers.append(____)

    return True

def block_correct(____):
    seen_numbers = []
    for i in range(____):
        for j in range(____):
            number = sudoku[i][j]
            if number != ____:
                if number in seen_numbers:
                    return False
                seen_numbers.append(____)
    return True

if __name__ == "____":
    sudoku1 = [
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____]
    ]

    print(solve(____))

    sudoku2 = [
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____],
    [____, ____, ____, ____, ____, ____, ____, ____, ____]
    ]

    print(solve(____))

示例

输入
sudoku1 = [
[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]
]

print(solve(sudoku1))

sudoku2 = [
[2, 6, 7, 8, 3, 9, 5, 0, 4],
[9, 0, 3, 5, 1, 0, 6, 0, 0],
[0, 5, 1, 6, 0, 0, 8, 3, 9],
[5, 1, 9, 0, 4, 6, 3, 2, 8],
[8, 0, 2, 1, 0, 5, 7, 0, 6],
[6, 7, 4, 3, 2, 0, 0, 0, 5],
[0, 0, 0, 4, 5, 7, 2, 6, 3],
[3, 2, 0, 0, 8, 0, 0, 5, 7],
[7, 4, 5, 0, 0, 3, 9, 0, 1]
]

print(solve(sudoku2))
期望输出
False
True
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码