题目链接:乒乓球
注意:在11分制下,乒乓球比赛把第10分称为赛点,当一个选手甲的得分首先超过10分时,如果此时与选手乙的分差大于2分,则甲获胜;否则,需要继续比赛,直到两方的分差大于2为止。同理,在21分制下,20分被称为赛点,下面与11分制类似。
一些比较坑的测试数据:
1、
输入:
EWLWLWL
输出:
0:0
0:0
2、
输入:
WWWWWWWWWWWEadfadf;jadf
输出:
11:0
0:0
11:0
java代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 存放比赛信息
String str = "";
// 记录双方在每场比赛的得分
int num_W = 0,num_L = 0;
Scanner in = new Scanner(System.in);
while(in.hasNextLine()) {
String s = in.nextLine();
// 只读取‘E’前面的字符串
if(s.indexOf("E")!=-1) {
s = s.substring(0,s.indexOf("E"));
str+=s;
break;
}
str+=s;
}
// 处理11分制下输出
if(str.length()==0) System.out.println("0:0");
for(int i=0;i<str.length();++i) {
if(str.charAt(i)=='W') num_W++;
else num_L++;
// 判定一局比赛是否结束
if((num_W>10||num_L>10)&&Math.abs(num_W-num_L)>=2) {
System.out.println(num_W + ":" + num_L);
num_W = 0;
num_L = 0;
}
// 在遍历要结束的时候也需要输出
if(i==str.length()-1){
System.out.println(num_W + ":" + num_L);
num_W = 0;
num_L = 0;
}
}
System.out.println();
// 处理21分制下输出
if(str.length()==0) System.out.println("0:0");
for(int i=0;i<str.length();++i) {
if(str.charAt(i)=='W') num_W++;
else num_L++;
// 判定一局比赛是否结束
if((num_W>20||num_L>20)&&Math.abs(num_W-num_L)>=2) {
System.out.println(num_W + ":" + num_L);
num_W = 0;
num_L = 0;
}
// 在遍历要结束的时候也需要输出
if(i==str.length()-1){
System.out.println(num_W + ":" + num_L);
}
}
}
}