見出し画像

Copilotさんに、数独の問題の読み込みのプログラ厶を聞いてみた

文字列から数独の問題を読み込みたい

0は空欄、1-9は各数字、数字以外の文字は読み飛ばして、81マス分読み込む

81に満たない場合は0で埋める   


def load_sudoku_from_string(input_str):

    # 数字以外の文字を除去し、0-9の数字だけにする

    digits = [char if char.isdigit() else '0' for char in input_str]

    

    # 81マスに満たない場合は0で埋める

    while len(digits) < 81:

        digits.append('0')

    

    # 最初の81文字を数独のグリッドに変換

    sudoku_grid = []

    for i in range(0, 81, 9):

        row = list(map(int, digits[i:i+9]))

        sudoku_grid.append(row)

    

    return sudoku_grid


# テスト

input_str = "530070000600195000098000060800060003400803001700020006060000280000419005000080079"

sudoku_grid = load_sudoku_from_string(input_str)


for row in sudoku_grid:

    print(row)

いいなと思ったら応援しよう!