Menu
CoddyTech

Valid Sudoku

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

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

関数

isValidSudoku(board: string-array) → boolean
boardstring-array
各行に9文字の文字列が1つずつ、数字の1~9と空のマスを表す.
戻り値boolean
行、列、または3 × 3のボックスで数字が重複していなければtrue、そうでなければ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
説明
0から数えて4行目の.74..89.3には、7、4、8、9、3がそれぞれ1回ずつ含まれており、ほかの26グループにも繰り返されている数字はありません。
challenge icon

発展問題

4 × 4のボックスがあり、1から9とAからGの記号を使う16 × 16のボードは、どうやってチェックしますか?ボックスの数式はどうなりますか?

コードをリセット
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