
Photo by
mahiro_nagi
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)