C. Rudolf and the Ugly String

题解

遇到map时,sum++;遇到pie时,sum++。

特殊情况遇到mapie时,sum--(因为map,pie分别加了一次,但是该子串只需要去掉p即可)

code

 

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int a[N];
int main(){
//    freopen("input.txt","r",stdin);
    int t;
    cin>>t;
    while (t--){
        int n;
        cin>>n;
        string s;
        cin>>s;
        int sum=0;
        for (int i=0;i<=n-3;i++){
            if (s[i]=='m' && s[i+1]=='a' && s[i+2]=='p' && i+3<n && s[i+3]=='i' && i+4<n && s[i+4]=='e') continue;
            else{
                if (s[i]=='m' && s[i+1]=='a' && s[i+2]=='p') sum++;
                if (s[i]=='p' && s[i+1]=='i' && s[i+2]=='e') sum++;
            }
        }
        cout<<sum<<endl;
    }
    return 0;
}

 

posted @ 2024-03-16 16:38  黑屿白  阅读(27)  评论(0)    收藏  举报