解题代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
int num = stdin.nextInt();
boolean[] flag;
int[] time;
for (int i = 0; i < num; i++) {
flag = new boolean[12];
time = new int[12];
String[] left = new String[3];
String[] right = new String[3];
String[] status = new String[3];
for (int j = 0; j < 3; j++) {
left[j] = stdin.next();
right[j] = stdin.next();
status[j] = stdin.next();
switch (status[j].charAt(0)) {
case 'e':
for (int l = 0; l < left[j].length(); l++) {
flag[left[j].charAt(l) - 'A'] = true;
flag[right[j].charAt(l) - 'A'] = true;
}
break;
case 'u':
for (int l = 0; l < left[j].length(); l++) {
time[left[j].charAt(l) - 'A']++;
time[right[j].charAt(l) - 'A']--;
}
break;
case 'd':
for (int l = 0; l < left[j].length(); l++) {
time[left[j].charAt(l) - 'A']--;
time[right[j].charAt(l) - 'A']++;
}
break;
}
}
int max = 0;
char result = ' ';
for (char c = 'A'; c <= 'L'; c++) {
if (flag[c - 'A']) {
continue;
}
if (max < Math.abs(time[c - 'A'])) {
max = Math.abs(time[c - 'A']);
result = c;
}
}
System.out.printf("%c is the counterfeit coin and it is ", result);
if (time[result - 'A'] < 0) {
System.out.println("light.");
} else {
System.out.println("heavy.");
}
}
}
}
给每个字母附上状态flag,time;