------------
import java.util.Scanner;
public class Main {
static int n = 0;
static int m = 0;
static int j = 0;
static int k = 0;
public void MainEleven(char ch, StringBuilder sb) {
if (ch == 'W') {
n++;
}
if (ch == 'L') {
m++;
}
if ((m == 11 && n <= 9) || (n == 11 && m <= 9)) {
sb.append(String.format("%d:%d", n, m));
sb.append("\n");
m = 0;
n = 0;
}
if ((m >= 12 && n >= 12) && (Math.abs(m - n) >= 2)) {
sb.append(String.format("%d:%d", n, m));
sb.append("\n");
m = 0;
n = 0;
}
}
public void MainTwentyOne(char ch, StringBuilder sb) {
if (ch == 'W') {
j++;
}
if (ch == 'L') {
k++;
}
if ((j == 21 && k <= 19) || (k == 21 && j <= 19)) {
sb.append(String.format("%d:%d", j, k));
sb.append("\n");
j = 0;
k = 0;
}
if ((j >= 22 && k >= 22) && (Math.abs(j - k) >= 2)) {
sb.append(String.format("%d:%d", j, k));
sb.append("\n");
j = 0;
k = 0;
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StringBuilder line = new StringBuilder();
// 连续读取多行输入并累积
while (scanner.hasNextLine()) {
boolean flag = false;
String input = scanner.nextLine();
for(int i = 0; i < input.length(); i++) {
if(input.charAt(i) == 'E') {
line.append(input.substring(0,i));
flag = true;
break;
}
}
if(!flag) {
line.append(input);
}else{
break;
}
}
Main main = new Main();
StringBuilder eleven = new StringBuilder();
StringBuilder twentyOne = new StringBuilder();
// 11分制
for (int i = 0; i < line.length(); i++) {
char ch = line.charAt(i);
main.MainEleven(ch, eleven);
}
// 输出 11分制结果
System.out.print(eleven);
System.out.printf("%d:%d",n,m);
System.out.println();
System.out.println();
// 21分制
for (int i = 0; i < line.length(); i++) {
char ch = line.charAt(i);
main.MainTwentyOne(ch, twentyOne);
}
// 输出 21分制结果
System.out.print(twentyOne);
System.out.printf("%d:%d",j,k);
scanner.close();
}
}
------------
感谢大佬解答!