Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- void reset(int[] numbers) {
- for (int i = 0; i < numbers.length; i++) {
- numbers[i] = 0;
- }
- }
- boolean isValid(int[] numbers, char current) {
- if (current != '.') {
- int number = current - '0';
- if (numbers[number - 1] > 0) {
- return false;
- }
- numbers[number - 1]++;
- }
- return true;
- }
- public boolean isValidSudoku(char[][] board) {
- int[] numbers = new int[9];
- // rows
- for (int row = 0; row < 9; row++) {
- reset(numbers);
- for (int col = 0; col < 9; col++) {
- if (!isValid(numbers, board[row][col])) {
- return false;
- }
- }
- }
- // columns
- for (int col = 0; col < 9; col++) {
- reset(numbers);
- for (int row = 0; row < 9; row++) {
- if (!isValid(numbers, board[row][col])) {
- return false;
- }
- }
- }
- // box sections
- reset(numbers);
- for (int boxR = 0; boxR < 9; boxR += 3) {
- for (int boxC = 0; boxC < 9; boxC += 3) {
- reset(numbers);
- for (int row = boxR; row < boxR + 3; row++) {
- for (int col = boxC; col < boxC + 3; col++) {
- if (!isValid(numbers, board[row][col])) {
- return false;
- }
- }
- }
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement