#12408: JAVA解答參考


spadegun (spadegun)

學校 : 不指定學校
編號 : 53256
來源 : [220.132.168.12]
最後登入時間 :
2017-07-09 21:20:07
a016. 數獨(SUDOKU) | From: [220.132.168.12] | 發表日期 : 2017-07-21 22:05

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Sudoku {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[][] ars = new int[9][9];
Set<Integer> hs = new HashSet();
boolean result;
while (scanner.hasNext()) {
result = true;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
ars[i][j] = scanner.nextInt();
}
}
f:
while (result) {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
hs.add(ars[i][j]);
}
if (hs.size() != 9) {
result = false;
System.out.println("no");
break f;
}
hs.clear();
}

for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
hs.add(ars[j][i]);
}
if (hs.size() != 9) {
result = false;
System.out.println("no");
break f;
}
hs.clear();
}

for (int i = 0; i < 9; i += 3) {
for (int j = 0; j < 9; j += 3) {
hs.add(ars[i][j]);
hs.add(ars[i][j + 1]);
hs.add(ars[i][j + 2]);
hs.add(ars[i + 1][j]);
hs.add(ars[i + 1][j + 1]);
hs.add(ars[i + 1][j + 2]);
hs.add(ars[i + 2][j]);
hs.add(ars[i + 2][j + 1]);
hs.add(ars[i + 2][j + 2]);
if (hs.size() != 9) {
result = false;
System.out.println("no");
break f;
}
hs.clear();
}
}
break f;
}
if (result) {
System.out.println("yes");
}
}
}
}
 
ZeroJudge Forum