Menu
CoddyTech

Valid Sudoku

ふつうハッシュpython iconjava iconcpp iconc iconjs icon+10

9 × 9 の数独盤面が board として与えられます。これは、各行に対応する9文字の文字列を9個含むリストです。各文字は 1 から 9 までの数字、または空のマスを表す . です。同じ行、同じ列、または同じ 3 × 3 のボックスに同じ数字が2回以上現れない場合は true を返し、それ以外の場合は false を返してください。チェックするのは埋まっているマスだけです。盤面が解ける必要はありません。

関数

isValidSudoku(board: string-array) → boolean
boardstring-array
各行に1つずつ、9文字の文字列が9つ。数字は1~9、空のセルは .
戻り値boolean
true(行、列、または3 × 3のボックスで数字が重複していない場合)、それ以外はfalse

制約

  • board.length == 9 と board[i].length == 9
  • board[i][j] は 1 から 9 までの数字、または . です
  • 盤面は完成できない場合があります。重要なのは、埋まっているマス同士での繰り返しだけです。

例

入力
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
出力
true
説明
各行、各列、各ボックスには、それぞれの数字が1回までしか現れません。0から数えて4行目の.74..89.3には、7、4、8、9、3がそれぞれ1回ずつあり、ほかの26グループも同様なので、答えはtrueです。

lock icon提出時に隠しテスト+16件

challenge icon

発展問題

チェックを、4 × 4 のボックスがある 16 × 16 の盤面と、1 から 9 および A から G の記号に一般化してください。コード内のどの数値が盤面のサイズに依存していますか。また、ボックスの計算式はどうなりますか?

コードをリセット
def isValidSudoku(board):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]

期待値

true