Menu
CoddyTech

Valid Sudoku

Trung bìnhBămpython iconjava iconcpp iconc iconjs icon+10

Bạn nhận được một bảng Sudoku 9 × 9 trong board, là một danh sách gồm 9 chuỗi, mỗi chuỗi có 9 ký tự, mỗi chuỗi tương ứng với một hàng. Mỗi ký tự là một chữ số từ 1 đến 9 hoặc . để biểu thị ô trống. Trả về true nếu không có chữ số nào xuất hiện hai lần trong cùng một hàng, cột hoặc ô vuông 3 × 3, và trả về false trong các trường hợp còn lại. Chỉ kiểm tra các ô đã điền: bảng không cần phải có lời giải.

Hàm

isValidSudoku(board: string-array) → boolean
boardstring-array
9 chuỗi gồm 9 ký tự, mỗi chuỗi trên một hàng, các chữ số từ 1 đến 9 và dấu . biểu thị ô trống
Trả vềboolean
true nếu không có hàng, cột hoặc ô 3 × 3 nào lặp lại một chữ số, false nếu ngược lại

Ràng buộc

  • board.length == 9 và board[i].length == 9
  • board[i][j] là một chữ số từ 1 đến 9 hoặc .
  • Bàn cờ có thể không hoàn thành được; chỉ cần quan tâm đến các lần lặp giữa những ô đã điền.

Ví dụ

Đầu vào
board = [".19......", "..89...3.", ".3.8.....", ".5..6....", ".74..89.3", "....7....", ".2.5..19.", "1....3...", ".8......7"]
Đầu ra
true
Giải thích
Hàng 4, nếu đếm từ 0, .74..89.3, có mỗi chữ số 7, 4, 8, 9 và 3 đúng một lần, và 26 nhóm còn lại cũng không có nhóm nào lặp lại chữ số.
challenge icon

Câu hỏi mở rộng

Bạn sẽ kiểm tra bảng 16 × 16 có các ô vuông 4 × 4 và các ký hiệu từ 1 đến 9 và từ A đến G như thế nào? Công thức tính ô vuông sẽ trở thành gì?

Đặt lại code
def isValidSudoku(board):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

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

Đầu ra mong đợi

true