题解:P15629 [2019 KAIST RUN Spring] Rainbow Beads
思路
我们发现,紫色的珠子与任何颜色的珠子相邻都无法构成美丽的串珠。所以对于任何一段长度大于等于
- 当前珠子是红色,下一枚珠子是蓝色。
- 当前珠子是蓝色,下一枚珠子是红色。
由于单独一颗珠子也是美丽的,所以在初始化答案是要设为
代码
#include<bits/stdc++.h>
using namespace std;
string s;
int ans;
int sum=1;
int n;
int main()
{
cin>>n;
cin>>s;
if(s.size()==1)
{
cout<<1;
return 0;
}
for (int i=0;i<s.size();i++)
{
if(s[i]=='R'&&s[i+1]=='B')
sum++;
else if(s[i]=='B'&&s[i+1]=='R')
sum++;
else
{
ans=max(ans,sum);
sum=1;
}
}
cout<<ans;
}