Untitled
public class Suduku1 { public static boolean isDuplicate(String s){ boolean[] check = new boolean[10]; // for (int i = 1; i < s.length(); i++) { // if(check[Character.getNumericValue(s.charAt(i))]){ // return true; // } // check[i] = true; // } for (int i = 1; i < s.length(); i++) { for (int j = 0; j < i; j++) { if(s.charAt(i)==s.charAt(j)){ return true; } } } return false; } public static int solve(String[][] m){ for (int i = 0; i < 9; i++) { // check ngang va doc String ngang = ""; String doc = ""; for (int j = 0; j < 9; j++) { if(!m[i][j].equals(".")){ ngang+=m[i][j]; } if(!m[j][i].equals(".")){ doc+=m[j][i]; } } if(isDuplicate(ngang)) return 0; if(isDuplicate(doc)) return 0; } //check sub_sudoku for (int i = 0; i < 9; i+=3) { for (int j = 0; j < 9; j+=3) { String s = ""; for (int l = i; l < i+3; l++) { for (int h = j; h < j+3; h++) { if(!m[l][h].equals(".")){ s += m[l][h]; } } } if(isDuplicate(s)) return 0; } } return 1; } public static void main(String[] args) throws FileNotFoundException { System.setIn(new FileInputStream("C:/Users/SVMC/Downloads/input.txt")); Scanner sc = new Scanner(System.in); int tc = sc.nextInt(); sc.nextLine(); for (int k = 1; k <= tc; k++) { String[][] m = new String[9][9]; for (int i = 0; i < 9; i++) { String s = sc.nextLine(); m[i] = s.split(""); } System.out.println("#"+k+" "+solve(m)); } // System.out.println("#1 1\n#2 0\n#3 0\n#4 1\n#5 1\n#6 0\n#7 0\n#8 0\n#9 0\n#10 1\n#11 1\n#12 0\n#13 1\n#14 1\n#15 1\n#16 0\n#17 0\n#18 1\n#19 0\n#20 0"); } }
Leave a Comment