HDOJ/HDU 2539 点球大战(String.endsWith()方法的一个应用~)

Problem Description

在足球比赛中,有不少赛事,例如世界杯淘汰赛和欧洲冠军联赛淘汰赛中,当比赛双方经过正规比赛和加时赛之后仍然不分胜负时,需要进行点球大战来决定谁能够获得最终的胜利。点球大战的规则非常简单,两方轮流派出球员罚点球,每方各罚5个。当5轮点球结束以后如果仍然不分胜负,则进入一轮定胜负的阶段。两方各派一名球员罚点球,直到有一方罚进而另一方没有进为止。

在北美职业冰球联赛中,也有点球大战。与足球的规则不同的是,它只先罚3轮点球,随后就进入一轮定胜负的阶段,而其他的规则完全一样。

在本题中,输入将给出每次点球是否罚进,而你的任务则是输出一个“比分板”。

Input

输入包含多组数据。每组数据的第一行包含一个整数N(1<=N<=18),表示双方总共罚了多少个点球,N=0表示输入结束。随后有N行,每行是一个如下形式的字符串:

XXXX good:表示这个点球罚进

或者XXXX no good:表示这个点球没有罚进

其中XXXX表示球员名字(全部由字母和空格组成,保证不会出现歧义)

每一行保证不超过100个字符。

XXXX和good以及XXXX和no、no和good之间保证有且只有1个空格。

good、no good都是小写。本题是大小写相关的。

数据不保证点球大战一定结束,也不保证在结束以后立即结束这组数据(即:不用判断点球大战是否结束,只用把罚进的点球往比分上加即可)。

Output

对每组数据,输出一个比分板。一个点球如果罚进,则在对应的地方标上’O’,如果没有进则标上’X’。先罚球的队伍的信息在上面,后罚的在下面。最右边标上两队的比分。具体格式参考样例输出。注意如果一轮点球只罚了一个,则后面那个点球对应的地方写上’-’。

Sample Input

6

Riise good

Ballack good

Gerrard no good

Lampard no good

Fernando Torres good

Malouda good

9

Christiano Ronaldo no good

Messi no good

Giggs good

Abidal no good

Carrick good

Ronaldinho good

Rooney good

Henry no good

Tevez good

0

Sample Output

1 2 3 Score

O X O 2

O X O 2

1 2 3 4 5 Score

X O O O O 4

X X O X - 1

提示:

空格数要和样例输出一样,否则很可能会被判为“格式错误”(Presentation Error)。

此题注意:名字中也有可能有一个no哦。

所以判断的时候,需要判断最后是不是“ no good”结尾的!no前面有一个空格!

Java很强大~直接用endsWith(” no good”);判断就可以了!

import java.util.Scanner;

/**
 * @author 陈浩翔
 *
 * @version 1.0  2016-5-11
 */
public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n =sc.nextInt();
            sc.nextLine();
            if(n==0){
                return ;
            }
            String str=null;
            char a[] = new char[(n+1)/2];
            char b[] = new char[(n+1)/2];
            int ap=0;
            int bp=0;
            int aNum=0;
            int bNum=0;
            for(int i=0;i<n;i++){
                str = sc.nextLine();
                boolean isNo = false;
                if(str.endsWith(" no good")){
                    isNo=true;
                }

                if(isNo){
                    if(i%2==0){
                        a[ap++]=‘X‘;
                    }else{
                        b[bp++]=‘X‘;
                    }
                }else{
                    if(i%2==0){
                        a[ap++]=‘O‘;
                        aNum++;
                    }else{
                        b[bp++]=‘O‘;
                        bNum++;
                    }
                }
            }

            for(int i=1;i<=(n+1)/2;i++){
                System.out.print(i+" ");
            }
            System.out.println("Score");

            if(n%2!=0){
                b[(n+1)/2-1]=‘-‘;
            }
            for(int i=0;i<(n+1)/2;i++){
                System.out.print(a[i]+" ");
            }
            System.out.println(aNum);
            for(int i=0;i<(n+1)/2;i++){
                System.out.print(b[i]+" ");
            }
            System.out.println(bNum);
        }
    }
}
时间: 2024-10-13 01:46:53

HDOJ/HDU 2539 点球大战(String.endsWith()方法的一个应用~)的相关文章

Java String.endsWith()方法

Java String.endsWith()方法用法实例教程, 该方法返回一个true,如果参数表示的字符序列是由该对象表示的字符序列的后缀,否则返回false 描述 java.lang.String.endsWith() 方法返回的测试该字符串是否以指定后缀sffix结束 声明 以下是声明java.lang.String.endsWith()方法 public boolean endsWith(String suffix) 参数 suffix -- This is the suffix. 返回

字符串对比.net String.EndsWith方法 (String)

string str="web/abc.aspx"; if(str.EndsWith("abc.aspx")) { 此方法将 value 与位于此实例末尾.与 value 长度相同的子字符串进行比较,并返回它们是否相等的指示. 若要相等,value 必须是对此同一实例的引用,或者与此实例的末尾匹配. 此方法使用当前区域性执行单词(区分大小写和区域性)比较. } else { 对调用者的说明 如 在 .NET Framework 中使用字符串的最佳做法 中所述,我们建

LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法

在本系列中.主要介绍LINQ to SQL基础的东西,由于LINQ太强大了,它对我们寻常使用不同的数据源有着不同的内容,其包含对于SQL Server 数据库的LINQ to SQL:对于XML 文档的LINQ to XML.对于 ADO.NET 数据集的LINQ to DataSet.对于.NET 集合.文件.字符串等的LINQ to Objects.例外也出现了一些对LINQ支持的开源项目,比如LINQ to JSON,LINQ for NHibernate等等. 在这个系列中,一些关于LI

HDOJ/HDU 2140 Michael Scofield&#39;s letter(字符转换~)

Problem Description I believe many people are the fans of prison break. How clever Michael is!! In order that the message won't be found by FBI easily, he usually send code letters to Sara by a paper crane. Hence, the paper crane is Michael in the he

hdu 4585 Shaolin两种方法(暴力和STL)

转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 Problem Description Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every year, trying to be a monk there. The mast

HDOJ/HDU 1161 Eddy&#39;s mistakes(大写字母转换成小写字母)

Problem Description Eddy usually writes articles ,but he likes mixing the English letter uses, for example "computer science" is written frequently "coMpUtEr scIeNce" by him, this mistakes lets Eddy's English teacher be extremely disco

HDOJ/HDU 1250 Hat&#39;s Fibonacci(大数~斐波拉契)

Problem Description A Fibonacci sequence is calculated by adding the previous two members the sequence, with the first two members being both 1. F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4) Your task is to take

js 中string 常见方法

1.charAt 返回指定索引出的字符     var str='abcd'; var a=str.charAt(0); console.log(a); //'a'     console.log(str); //'abcd' 2.charCodeAt 返回指定索引出的unicode字符 str.charCodeAt(0);   //97 3.indexof  判断一个字符第一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含返回-1. str.indexOf('a');     //0

Java基础String的方法

Java基础String的方法 字符串类型写法格式如下: 格式一: String 变量名称; 变量名称=赋值(自定义或传入的变量值); 格式二: String 变量名称=赋值(自定义或传入的变量值);在输出时任何数据类型与字符串进行拼接,结果一般是字符串 1 public class StringFunc { 2 3 public static void main(String[] args){ 4 //字符串拼接 5 String str1; 6 str1 = "hello"; 7