算法知识点: 字符串处理,模拟
复杂度:
解题思路:
先将整个比赛情况读取进来,然后依次枚举在11分制和21分制下的比赛结果即可。
- 在11分制下,一局比赛结束的条件是:某一方达到11分,且分差达到2;
- 在21分制下,一局比赛结束的条件是:某一方达到21分,且分差达到2;
注意最后如果比分是0:0,也要输出。
C++ 代码:
#include <iostream> #include <algorithm> using namespace std; void work(string str, int score) { int a = 0, b = 0; for (int i = 0; i < str.size() && str[i] != 'E'; i ++ ) { if (str[i] == 'W') a ++ ; else b ++ ; if (max(a, b) >= score && abs(a - b) >= 2) { printf("%d:%d\n", a, b); a = b = 0; } } printf("%d:%d\n", a, b); } int main() { string str, s; while (cin >> s) str += s; work(str, 11); puts(""); work(str, 21); return 0; }