CF C. Plasticine zebra

http://codeforces.com/contest/1025/problem/C

题意:给你一个字符串,可以把它分成两段,每段首尾调换再拼接成新的字符串,问相邻连续不相同的最多有多少个?

直接当成环来处理就行了。

只是要注意bw这种情况。

#include<bits/stdc++.h>
#define inf 0x3f3f3f3f

using namespace std;

int main()
{

    int ans=1,mx=-1,len;
    string s;
    cin>>s;
    len=s.size();
    for(int i=0;i<4*s.size();i++)
    {
       /// cout<<s[i%len]<<" "<<s[(i+1)%len]<<endl;
        if(s[i%len]!=s[(i+1)%len])
        ans++;
        else
        {
            mx=max(mx,ans);
            ans=1;
        }
        mx=max(ans,mx);
    }
    cout<<min(mx,len)<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_38924883/article/details/81868685