Untitled

 avatar
unknown
plain_text
a year ago
1.8 kB
1
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");
	}
}
Leave a Comment