zoukankan      html  css  js  c++  java
  • 【LeetCode】 Valid Sudoku

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.

    The Sudoku board could be partially filled, where empty cells are filled with the character '.'.


    A partially filled sudoku which is valid.

    java code :

     

    public class Solution {
        public boolean isValidSudoku(char[][] board) {
            // IMPORTANT: Please reset any member data you declared, as
            // the same Solution instance will be reused for each test case.
             HashSet<Character> hash = new HashSet<Character>();
    		 if(board == null)
    			 return true;
    		 for(int i = 0; i < board.length; i++)
    		 {
    			 hash.clear();
    			 for(int j = 0; j < board[0].length; j++)
    			 {
    				 if(board[i][j] == '.')
    					 continue;
    				 if(!(board[i][j] >= '1' && board[i][j] <= '9'))
    					 return false;
    				 if(hash.isEmpty() || !hash.contains(board[i][j]))
    					 hash.add(board[i][j]);
    				 else return false;
    			 }
    		 }
    		 hash.clear();
    		 for(int i = 0; i < board[0].length; i++)
    		 {
    			 hash.clear();
    			 for(int j = 0; j < board.length; j++)
    			 {
    				 if(board[j][i] == '.')
    					 continue;
    				 if(!(board[j][i] >= '1' && board[j][i] <= '9'))
    					 return false;
    				 if(hash.isEmpty() || !hash.contains(board[j][i]))
    					 hash.add(board[j][i]);
    				 else return false;
    			 }
    		 }
    		 hash.clear();
    		 
    		 for(int i = 0; i < 9; i += 3)
    		 {
    			 
    			 for(int j = 0; j < 9; j += 3)
    			 {
    				 hash.clear();
    				 for(int row = 0; row < 3; row++)
    				 {
    					 for(int col = 0; col < 3; col++)
    					 {
    						 if(board[i+row][j+col] == '.')
    							 continue;
    						 if(!(board[i+row][j+col] >= '1' && board[i+row][j+col] <= '9'))
    							 return false;
    						 if(hash.isEmpty() || !hash.contains(board[i+row][j+col]))
    							 hash.add(board[i+row][j+col]);
    						 else return false;
    					 }
    				 }
    			 }
    		 }
    		 hash = null;
    		 return true;
        }
    }


  • 相关阅读:
    CF1313A Fast Food Restaurant
    模板: zkw线段树
    从5个经典工作开始看语义SLAM
    LeetCode题号[200,299]刷题总结
    2020春招实习总结
    LeetCode题号[100,199]刷题总结
    LeetCode题号[1,99]刷题总结
    HashMap源码详解
    动态规划——楼层扔鸡蛋问题
    图论——迪杰斯特拉算法和最小生成树
  • 原文地址:https://www.cnblogs.com/riskyer/p/3400474.html
Copyright © 2011-2022 走看看