Untitled
unknown
plain_text
2 years ago
1.8 kB
4
Indexable
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");
}
}Editor is loading...
Leave a Comment