题解:P11198 [JOIG 2024 Open] 三連続 / Three Consecutive

· · 题解

P11198 [JOIG 2024 Open] 三連続 / Three Consecutive 题解

题目传送门

正文

这是一道非常基础的题目,建议新手多刷一点这样类型的题目。

对于本题而言,如果字符串 si 位为 o,那么计数器加 1。否则,判断计数器的数量是否符合条件,如果符合,那么输出 Yes

如果是符合条件的话,那么在 for 循环里就已经输出 Yes 了,在 for 循环外面就不需要在判断一次了。

Code

s+='x';//设定一个哨兵
for(int i=0;i<=s.size();i++) {//正常是i<s.size(),但是可以用一个哨兵,使代码最后进入else部分
    if(s[i]=='o') t++;
    else {
        if(t>=3) {cout<<"Yes"; return 0;} //符合条件就退出
        t=0;
    }
}
cout<<"No";