首页 > 代码库 > Valid Sudoku
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.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
经典数独游戏,需要判断每行每列以及9个九宫格里是否存在重复数字。
public class Solution { //判断一行或一列或9宫格里的9个数是否有重复 public boolean isValidRow(char[] row){ String str = ""; for(int i=0;i<9;i++){ if(row[i]!=‘.‘){ if(!str.contains(String.valueOf(row[i]))){ str+=row[i]; } else{ return false; } } } return true; } //判断每行是否有重复数字 public boolean isValidLine(char[][] board){ for(int i=0;i<9;i++){ if(isValidRow(board[i])==false){ return false; } } return true; } //判断每列是否有重复数字 public boolean isValidColumn(char[][] board){ for(int i = 0;i < 9;i++){ char[] str = new char[9]; for(int j = 0;j <9;j++){ str[j] = board[j][i]; } if(isValidRow(str)==false){ return false; } } return true; } //判断每个九宫格里是否有重复数字 public boolean isValidSquare(char[][] board){ for(int i=0;i<=6;i=i+3){ int x = i; for(int j=0;j<=6;j=j+3){ char[] str = new char[9]; int y = j; for(int m=0;m<3;m++){ for(int n=0;n<3;n++){ str[m*3+n] = board[x+m][y+n]; } } if(isValidRow(str)==false){ return false; } } } return true; } public boolean isValidSudoku(char[][] board) { if(isValidLine(board)==false){ return false; } if(isValidColumn(board)==false){ return false; } if(isValidSquare(board)==false){ return false; } return true; }}
Valid Sudoku
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。