交换
T1 购物
https://ac.nowcoder.com/acm/contest/7612/A
考虑答案出现的位置
可能出现在头,尾,和中间的位置
我们可以用双指针算出中间连续1的个数
然后暴力扫一遍头尾并统计答案就行
#include<bits/stdc++.h>
using namespace std;
const int N=1e6;
char ch[N];
int tou,wei;
int ans;
int main()
{
cin>>ch;
int len=strlen(ch);
for(int i=0;i<len;i++)
if(ch[i]=='0')
break;
else tou++;
for(int i=len-1;i>=0;i--)
if(ch[i]=='0')
break;
else wei++;
for(int i=0,j=0;i<len;i++)
{
if(ch[i]=='0') ans=max(ans,i-j-1),j=i;
// if(i==len) ans=max(ans,len-j);
}
ans=max(ans,min(wei+tou,len));
cout<<ans<<endl;
} 