讨论 / C++题解
沧海一声喵 2018-02-25 18:38:17
点我顶贴 收藏 删除
#include <cstdio>

using namespace std;

int main(){

int i,k,n,max=0,l,r;

char s[1500],lc,rc;

scanf("%d%s",&n,s);

for(i=0;i<n;i++) s[i+2*n]=s[i+n]=s[i];

for(k=n;k<2*n;k++){

for(l=k-1;l>=k-n;l--)//确定左颜色

if(s[l]!='w'){

lc=s[l];break;}

for(r=k;r<=k+n;r++)//确定右颜色

if(s[r]!='w'){

rc=s[r];break;}

if(r-l>=n){//全是'W'

max=n;break;}

for(r=k;r<k+n;){

if(s[r+1]=='w'||s[r+1]==rc) r++;

else break;}

for(l=k-1;l>k-n;){

if(s[l-1]=='w'||s[l-1]==lc) l--;

else break;}

if(r-l+1>max) max=r-l+1;}

if(max>n) max=n;

printf("%d",max);

return 0;}

查看更多回复
提交回复