注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
RT, 前几天OA,题目还是Valid Sudoku,和lc不同的是,这里输入是一串长度为81的字符串,如果valid输出1,否则输出0
参考代码如下:
public boolean isValidSudoku(String s) {
if (s.length() != 81) return false;
for (int j = 0; j < 9; j++) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 9; i++) {
if (j == 0 && !isValid(s.substring(i * 9 + j, i * 9 + j + 9))) return false;
if ((i == 1 || i == 4 || i == 7) && (j == 1 || j == 4 || j == 7)) {
if (!isValid(block(s, i, j))) return false;
}
sb.append(s.charAt(i * 9 + j));
}
if (!isValid(sb.toString())) return false;
}
return true;
}
private String block(String s, int i, int j) {
StringBuilder sb = new StringBuilder();
for (int m = i - 1; m <= i + 1; m++) {
for (int n = j - 1; n <= j + 1; n++) {
sb.append(s.charAt(m * 9 + n));
}
}
return sb.toString();
}
private boolean isValid(String s) {
HashSet<Character> set = new HashSet<Character>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '.') continue;
ut.println(s);
test t = new test();
String[] arr = new String[]{"like", "god", "internal", "me", "internet", "interval", "intension", "face", "intrusion"};
t.abbreviation(arr);
System.out.println();
arr = new String[]{"interval", "internal", "intaaaal"};
t.abbreviation(arr);
System.out.println();
arr = new String[]{"aaa"};
t.abbreviation(arr);
System.out.println();
}
}
为下面的面试攒RP
|