62,612
社区成员
发帖
与我相关
我的任务
分享
String number = "13968021234";
char[] c = number.toCharArray();
if(c[10] == c[9] || (c[10} != c[9] && c[10] != c[8] != c[9] != c[8])) {
return 2;
}else if((c[10] == c[9] && c[8] == c[7] && c[10] != c[8]) || (c[10] == c[8] && c[9] == c[7] && c[10] != c[9])){
return 3;
}else {
...
}
//Have A Try...
public static void main(String[] args) {
String tel = "13851513313";
char[] num = tel.toCharArray();
if (eq(num, 5) || eq(num, 4) || ne(num, 5)) {
System.out.println("5");
} else if (eq(num, 3) || ne(num, 4)) {
System.out.println("4");
} else if (lv3(num)) {
System.out.println("3");
} else if (eq(num, 2) || ne(num, 3)) {
System.out.println("2");
} else {
System.out.println("1");
}
}
// 三星单独判断
public static boolean lv3(char[] c) {
if (c[10] == c[8] && c[7] == c[9]) {
return true;
}
if (c[10] == c[9] && c[7] == c[8]) {
return true;
}
return false;
}
// 是否从末位开始全不等
public static boolean ne(char[] c, int length) {
c = Arrays.copyOfRange(c, 11 - length, 11);
Arrays.sort(c);
for (int i = 0; i < c.length - 1; i++) {
if (c[i] == c[i + 1]) return false;
}
return true;
}
// 是否从末位开始,连续相等
public static boolean eq(char[] c, int length) {
c = Arrays.copyOfRange(c, 11 - length, 11);
for (int i = 0; i < c.length - 1; i++) {
if (c[i] != c[i + 1]) return false;
}
return true;
}