1. 程式人生 > >codeforces cf round#505(based on vk cup 2018 final) C. Plasticine zebra

codeforces cf round#505(based on vk cup 2018 final) C. Plasticine zebra

構造題,把整個串想象成一個環。每次把環斷開並反轉的時候從切口處看進去的順序是和剛開始從頭到尾的順序是一樣的。於是每次不管如何翻轉最後都要找到這個環上最大的連續子段長度

#include<bits/stdc++.h>
using namespace std;
string s;
int main()
{
    cin>>s;
    int tmp=s.size();
    s=s+s;
    int ans=0;
    int len=1;
    for(int i=0;i<(int)s.size()-1;i++)
    {
        if(s[i]=='
b'&&s[i+1]=='w'||s[i]=='w'&&s[i+1]=='b') { len++; } else { ans=max(ans,len); len=1; } } ans=max(len,ans); printf("%d\n",min(ans,tmp)); }