贪心
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include <bits/stdc++.h> #define pb push_back #define mp make_pair #define x first #define y second #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 #define up rt,rt<<1,rt<<1|1 #define mem(x) memset(x,0,sizeof(x)) #define mem1(x) memset(x,-1,sizeof(x)) #define LMissher using namespace std; typedef long long ll; typedef double db; const int M = 2e5+7; const double pi = acos(-1); const int inf = 2147483647; const int mod = 1e9+7; int _,n,ans; char s[M]; int main(){ #ifdef LMissher freopen("1.in","r",stdin); freopen("1.out","w",stdout); #endif scanf("%d",&_); while(_--){ ans=0; scanf("%d%s",&n,s); for(int i=2;i<n-1;i++){ if(s[i]=='P'){ if(s[i-1]=='C'&&s[i-2]=='C'&&s[i+1]=='C') ans++; } } if(s[0]=='C'&&s[1]=='P'&&s[2]=='C'){ printf("%d\n",ans+1);continue; } if(s[n-1]=='C'&&s[n-2]=='C'&&s[n-3]=='C'){ printf("%d\n",ans+1);continue; } if(s[n-1]=='P'&&s[n-2]=='C'&&s[n-3]=='C'){ printf("%d\n",ans+1);continue; } int flg=0; for(int i=0;i<n-3;i++){ if(s[i]=='C'&&s[i+1]=='C'&&s[i+2]=='P'&&s[i+3]=='P') flg=1; if(s[i]=='P'&&s[i+1]=='C'&&s[i+2]=='P'&&s[i+3]=='C') flg=1; if(s[i]=='C'&&s[i+1]=='C'&&s[i+2]=='C'&&s[i+3]=='C') flg=1; } if(flg) printf("%d\n",ans+1); else printf("%d\n",ans); } return 0; }