Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. class Solution {
  2.  
  3. void reset(int[] numbers) {
  4. for (int i = 0; i < numbers.length; i++) {
  5. numbers[i] = 0;
  6. }
  7. }
  8.  
  9. boolean isValid(int[] numbers, char current) {
  10. if (current != '.') {
  11. int number = current - '0';
  12. if (numbers[number - 1] > 0) {
  13. return false;
  14. }
  15. numbers[number - 1]++;
  16. }
  17.  
  18. return true;
  19. }
  20.  
  21. public boolean isValidSudoku(char[][] board) {
  22.  
  23. int[] numbers = new int[9];
  24.  
  25. // rows
  26. for (int row = 0; row < 9; row++) {
  27. reset(numbers);
  28. for (int col = 0; col < 9; col++) {
  29. if (!isValid(numbers, board[row][col])) {
  30. return false;
  31. }
  32. }
  33. }
  34.  
  35. // columns
  36. for (int col = 0; col < 9; col++) {
  37. reset(numbers);
  38. for (int row = 0; row < 9; row++) {
  39. if (!isValid(numbers, board[row][col])) {
  40. return false;
  41. }
  42. }
  43. }
  44.  
  45. // box sections
  46. reset(numbers);
  47. for (int boxR = 0; boxR < 9; boxR += 3) {
  48. for (int boxC = 0; boxC < 9; boxC += 3) {
  49. reset(numbers);
  50. for (int row = boxR; row < boxR + 3; row++) {
  51. for (int col = boxC; col < boxC + 3; col++) {
  52. if (!isValid(numbers, board[row][col])) {
  53. return false;
  54. }
  55. }
  56. }
  57. }
  58. }
  59.  
  60. return true;
  61. }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement