http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?a=1623
這題判斷好數,先存入字串中判斷長度若大於4就Failure Imput 好數的判斷就是把四個數拆開放入num[10]的陣列中分別為0~9以索引值當作數字內容存次數 1122,3113這些數字也包含在測資中他也不是好數所以建立temp儲存第2多的數 若輸入1122 =>max=2 temp=2(2==2)就是上述的狀態 若輸入1213 =>max=2 temp=1 就是好數
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int n = scn.nextInt();
while (n-- != 0) {
String str = scn.next();
char c[] = str.toCharArray();//存入字串並拆開成字元陣列
if (c.length != 4)//若長度不等於4就是Failure Input
System.out.println("Failure Input");
else {
int num[] = new int[10], max = 0, temp = 0; //判斷好數
for (int i = 0; i < 4; i++)//num[10]的陣列中分別為0~9以索引值當作數字內容存次數
num[c[i] - '0']++;
for (int i = 0; i < 10; i++)//num全部檢查次數
if (num[i] >= max) {
temp = max;//若num[i] == max temp儲存第二大的個數 max儲存num[i]
max = num[i];
}
if (max == 2 && (max != temp))//判斷是否第一和第二數量是否一樣 ex:1122,1221 1和2的個數都是2個
System.out.println("Yes");
else
System.out.println("No");
}
}
}
/*
題目:[C_AR59-易] 好數問題
作者:1010
時間:西元 2016 年 7 月 */
}