题目背景

国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中1111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白1111分制和2121分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。

题目描述

华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在1111分制和2121分制下,双方的比赛结果(截至记录末尾)。

比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):

WWWWWWWWWWWWWWWWWWWWWWLW

在1111分制下,此时比赛的结果是华华第一局1111比00获胜,第二局1111比00获胜,正在进行第三局,当前比分11比11。而在2121分制下,此时比赛结果是华华第一局2121比00获胜,正在进行第二局,比分22比11。如果一局比赛刚开始,则此时比分为00比00。直到分差大于或者等于22,才一局结束。

你的程序就是要对于一系列比赛信息的输入(WLWL形式),输出正确的结果。

输入输出格式

输入格式:

每个输入文件包含若干行字符串,字符串有大写的WW、LL和EE组成。其中EE表示比赛信息结束,程序应该忽略E之后的所有内容。

输出格式:

输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是1111分制下的结果,第二部分是2121分制下的结果,两部分之间由一个空行分隔。

输入输出样例

输入样例#1: 复制

WWWWWWWWWWWWWWWWWWWW

WWLWE

输出样例#1: 复制

11:0

11:0

1:1

21:0

2:1

下面还有一个用IO软件包优化的代码

import java.util.ArrayList;
import java.util.Scanner; public class pingpangqiu {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
int win1 = 0;
int lose1 = 0;
int win2 = 0;
int lose2 = 0;
int temp = 0;
Scanner sc =new Scanner(System.in);
String s = "";
// int count = 0;
while(true){
String str = sc.nextLine(); // count++;
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)=='E'){
temp = 1;
str = str.substring(0,i);
break;
}
}
s=s+str;
if(temp!=0){
break;
} }
sc.close();
// System.out.println(count); char [] num = s.toCharArray();
for (int i = 0; i < num.length; i++) { if(num[i]=='W'){
win1++;
win2++;
}else{
lose1++;
lose2++;
}
if((win1>=11 || lose1>=11) && Math.abs(win1-lose1)>=2){
System.out.println(win1+":"+lose1);
win1=0;
lose1=0;
}
if((win2>=21 || lose2>=21) && Math.abs(win2-lose2)>=2){
String ss =win2+":"+lose2;
list.add(ss);
win2=0;
lose2=0;
}
}
System.out.println(win1+":"+lose1);
System.out.println();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println(win2+":"+lose2); } }
import java.io.BufferedInputStream;
import java.util.Scanner; public class pingpangqiu2 {
static String str; //有用的比赛信息
static int a,b; //两人的比分
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
Scanner sc = new Scanner(new BufferedInputStream(System.in));
do{
sb.append(sc.next());
}while(sb.indexOf("E")==-1); //出现E停止录入
//截取有用的字符串
str = sb.substring(0, sb.indexOf("E")+1); ps11();
System.out.println();
ps21(); } public static void ps11(){ //11
a = b = 0;
for(int i=0;str.charAt(i)!='E';i++){
if(str.charAt(i)=='W') a += 1;
else b += 1;
if((a-b>=2||b-a>=2)&&(a>=11||b>=11)) {//决出胜负
System.out.println(a+":"+b); //输出
a = b = 0; //重置
}
}
System.out.println(a+":"+b); //输出
} //11 改成 21 即可
public static void ps21(){//21
a = b = 0;
for(int i=0;str.charAt(i)!='E';i++){
if(str.charAt(i)=='W') a += 1;
else b += 1;
if((a-b>=2||b-a>=2)&&(a>=21||b>=21)) {//决出胜负
System.out.println(a+":"+b); //输出
a = b = 0; //重置
}
}
System.out.println(a+":"+b); //输出
} }

(Java实现) 洛谷 P1042 乒乓球的更多相关文章

  1. 洛谷 P1042 乒乓球

    P1042 乒乓球 var s:string; a1:array[1..50000] of char; i,n,x,y:longint; procedure f1; begin while not e ...

  2. 洛谷P1042 乒乓球【模拟】

    题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中111111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位 ...

  3. 洛谷——P1042 乒乓球

    https://www.luogu.org/problem/show?pid=1042 题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改 ...

  4. 洛谷P1042 乒乓球

    https://www.luogu.org/problem/P1042 #include<bits/stdc++.h> using namespace std; ]; int w,l; i ...

  5. Java实现 洛谷 Car的旅行路线

    输入输出样例 输入样例#1: 1 3 10 1 3 1 1 1 3 3 1 30 2 5 7 4 5 2 1 8 6 8 8 11 6 3 输出样例#1: 47.5 import java.util. ...

  6. Java实现 洛谷 P1738 洛谷的文件夹

    题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:/luogu/application/c ...

  7. Java实现洛谷 P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...

  8. 洛谷P1402——乒乓球

    原题链接: https://www.luogu.com.cn/problem/P1042 题面简述 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制 ...

  9. Java实现洛谷 P1007独木桥

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

随机推荐

  1. STM32 OSAL操作系统抽象层的移植

    文章目录 什么是 OSAL? 源码安装 Linux 上OSAL的移植 STM32上OSAL的移植 关键点 测试代码 结语 附件 什么是 OSAL? 今天同学忽然问我有没有搞过OSAL,忽然间一头雾水, ...

  2. 【c++ 重载】

    重载"[]": #include <iostream> #include <string> using namespace std; struct Node ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目

    项目介绍 此个人博客项目底层基于 ABP Framework (不完全依赖)搭建项目 和免费开源跨平台的 .NET Core 3.1 开发,可作为 .NET Core 入门项目进行学习,支持各种主流数 ...

  4. python --文件读取数据

    读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, 即读取文件成功. 解析: 函数ope ...

  5. 20184302 2019-2020-2 《Python程序设计》实验一报告

    20184302 2019-2020-2 <Python程序设计>实验一报告 课程:<Python程序设计> 班级: 1843 姓名: 李新锐 学号:20184302 实验教师 ...

  6. 5-JVM常用的命令

    JVM常用的命令 jps :基础工具 查看JAVA进程PID. jps 命令用来查看所有 Java 进程,每一行就是一个 Java 进程信息. jps 仅查找当前用户的 Java 进程,而不是当前系统 ...

  7. 力扣题解-面试题58 - II. 左旋转字符串

    题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作的功能. 比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转 ...

  8. 存储系列之 Linux ext2 概述

    引言:学习经典永不过时. 我们之前介绍过存储介质主要是磁盘,先介绍过物理的,后又介绍了虚拟的.保存在磁盘上的信息一般采用文件(file)为单位,磁盘上的文件必须是持久的,同时文件是通过操作系统管理的, ...

  9. mysql基本操作汇总

    1.数据库操作 (1)创建数据库 CREATE DATABASE <数据库名>; 例子: CREATE DATABASE IF NOT EXISTS RUNOOB DEFAULT CHAR ...

  10. 实验三 Java基本程序设计

    第一部分:理论知识复习部分 第一章:第一章介绍的是Java程序设计的概述,通过两周的Java学习中,重温了Java“白皮书的关键术语,更深一步理解乐11个关键术语. 第二章:本章主要介绍如何安装JDK ...