2 条题解

  • 0
    @ 1 个月前

    比较菜,多指教

    #include <iostream>
    using namespace std;
    char s[710];//存放项链
    int n=0;//项链长度
    int dtmcol(char c)//判断颜色
    {
    	if(c=='b') return 1;
    	else return 2; 
     } 
    int main() {
    	int ans=0;
    	cin>>n>>s;//输入项链长度和项链
    	for(int i=0;i<n;i++) s[i+n]=s[i];//将项链变为2*n长度来处理环
    	for(int i=0;i<n;i++)
    	{
    		int l=i,r=i+n-1;
    		int cnt=0,left=0,right=0;//cnt==count
    		while(l<=r&& (s[l]=='w'||(left|dtmcol(s[l]))!=3))//向左枚举
    		{
    			if(s[l]!='w') left|=dtmcol(s[l]);
    			cnt++,l++;
    		}
    		while(l<=r&& (s[r]=='w'||(right|dtmcol(s[r]))!=3))//向右枚举
    		{
    			if(s[l]!='w') right|=dtmcol(s[r]);
    			cnt++,r--;
    		}
    		ans=ans>cnt?ans:cnt;//比较大小
    	} 
    	cout<<ans;//输出答案
    	return 0;
    }
    
    

    信息

    ID
    6
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    48
    已通过
    8
    上传者