题意分析
注意循环问题,模拟即可。
代码总览
#include<bits/stdc++.h>
using namespace std;
const int nmax = 1000;
char str[nmax<<1];
int main(){
int n;
while(scanf("%d",&n)!=EOF){
scanf("%s",str);
int len = strlen(str);
for(int i = 0;i<len;++i) str[i+len] = str[i];
for(int i = 0;i<len;++i) str[i+len*2] = str[i];
int ans = -1;
for(int i = 0;i<len;++i){
int p = len+i ,t = len,a1 = 0,kind1 = str[len+i];
while(t--){
if(kind1 == 'w' && str[p] != 'w'){
a1++;
kind1 = str[p];
}else if(str[p] == kind1 || str[p] == 'w') a1++;
else break;
p++;
}
int a2 = 0,kind2 = str[len-1+i]; t = len,p = len-1+i;
while(t--){
if(kind2 == 'w' && str[p] != 'w'){
a2++;
kind2 = str[p];
}else if(str[p] == kind2 || str[p] == 'w') a2++;
else break;
p--;
}
if(a1+a2 >len) ans = len;
else ans = max(ans,a1+a2);
}
printf("%d\n",ans);
}
return 0;
}