乒乓球

题目 乒乓球

image-533b29ee

思路分析

题目少给了一个条件:(其实是乒乓球的隐含条件)

一局比赛结束需要满足双方分差至少为2分,否则继续进行当前这局。

例如在11分制下,当前比分为10:10,那么至少需要再进行2轮比赛才可以结束,即在12:10或者10:12的时候结束。如果双方分差一直拉开不到2分,则这局比赛会一直进行下去。

所以两个条件 先到11分或者21分的 并且分差2分以上 的获胜

直接模拟即可

代码实现

#include<bits/stdc++.h>

using namespace std;

void work(string str,int score)

{

    int a=0,b=0;

    for(int i=0;i<str.size();i++){

        if(str[i]=='W')

            a++;

        else

            b++;

        if(max(a,b)>=score && abs(a-b)>=2){

            cout<<a<<":"<<b<<endl;

            a=b=0;

        }

    }

     cout<<a<<":"<<b<<endl;

}

int main()

{

    string str;

    char c;

    while(cin>>c && c!='E')

        str+=c;

    work(str,11);

    cout<<endl;

    work(str,21);

    return 0;

}

同类题型

视频讲解


⬅️ 与双指针相通 🏠 00-刷题理模型 ➡️ 基本操作