საიტი არის დეველოპმენტის პროცესში

ისწავლეს ლოგოᲘᲡᲬᲐᲕᲚᲔ
  • მთავარი
  • სავარჯიშოები
  • ედიტორი
  • გზამკლევი
საშუალო ციკლი მასივი მონაცემთა სტრუქტურები მატრიცა

ვალიდური Sudoku

დაადგინეთ, ვალიდურია თუ არა 9x9 ზომის სუდოკუს დაფა (მატრიცა). მხოლოდ შევსებული უჯრების დადასტურებაა საჭირო შემდეგი წესების დაცვით:

  • თითოეულ რიგში არ უნდა იყოს განმეორება.
  • თითოეულ სვეტში არ უნდა იყოს განმეორება.
  • თითოეულ 3x3 დაფაში არ უნდა იყოს განმეორება.
გაითვალისწინეთ, მაგალითში აღწერილი დაფა შეიძლება იყოს ვალიდური მაგრამ არა ამოხსნადი.

გადაცემული პარამეტრებიდან გამომდინარე ამოცანას აუცილებლად ექნება ერთი სწორი პასუხი.

Sodoku-ს მაგალითი

პირველი მაგალითი

პარამეტრები:

JS
`board = [
    ["5","3",".",".","7",".",".",".","."],
    ["6",".",".","1","9","5",".",".","."],
    [".","9","8",".",".",".",".","6","."],
    ["8",".",".",".","6",".",".",".","3"],
    ["4",".",".","8",".","3",".",".","1"],
    ["7",".",".",".","2",".",".",".","6"],
    [".","6",".",".",".",".","2","8","."],
    [".",".",".","4","1","9",".",".","5"],
    [".",".",".",".","8",".",".","7","9"]
]
  • შედეგი: true
  • განმარტება: ვალიდურია, რადგან ყველა რიგი და ქვე-დაფა არ შეიცავს განმეორებად ციფრებს.

მეორე მაგალითი

პარამეტრები:

JS
`board = [
    ["8","3",".",".","7",".",".",".","."],
    ["6",".",".","1","9","5",".",".","."],
    [".","9","8",".",".",".",".","6","."],
    ["8",".",".",".","6",".",".",".","3"],
    ["4",".",".","8",".","3",".",".","1"],
    ["7",".",".",".","2",".",".",".","6"],
    [".","6",".",".",".",".","2","8","."],
    [".",".",".","4","1","9",".",".","5"],
    [".",".",".",".","8",".",".","7","9"]
]
  • შედეგი: false
  • განმარტება: არ არის ვალიდური, რადგან პირველ სვეტში 8 განმეორდა.

შეზღუდევები

  • board.length == 9
  • board[i].length == 9
  • board[i][j] არის ციფრი '1'-დან '9'-მდე, ან '.'

ამოცანის ამოხსნა შესაძლებელია ბევრი გზით, ცადეთ ისეთი ალგორითმის მოფიქრება, რომელიც O(1)-თან ახლოს არის.

პარამეტრები
board = [ [ "5", "3", ".", ".", "7", ".", ".", ".", "." ], [ "6", ".", ".", "1", "9", "5", ".", ".", "." ], [ ".", "9", "8", ".", ".", ".", ".", "6", "." ], [ "8", ".", ".", ".", "6", ".", ".", ".", "3" ], [ "4", ".", ".", "8", ".", "3", ".", ".", "1" ], [ "7", ".", ".", ".", "2", ".", ".", ".", "6" ], [ ".", "6", ".", ".", ".", ".", "2", "8", "." ], [ ".", ".", ".", "4", "1", "9", ".", ".", "5" ], [ ".", ".", ".", ".", "8", ".", ".", "7", "9" ] ]
მოსალოდნელი შედეგი
true