Balanced Substring
题目
样例
思路
转化为前进后退的操作,0和1相互抵消,则会退回远处。
代码
#include<iostream>
#include<cstring>
using namespace std;
int a[200020];
int main()
{
memset(a,999999,sizeof(a));
int n,num=100005,l=0;
char c;
scanf("%d",&n);
getchar();
a[num]=0;
for(int i=1;i<=n;i++)
{
scanf("%c",&c);
if(c=='1') num++;
else num--;
a[num]=min(a[num],i);
l=max(l,i-a[num]);
}
printf("%d\n",l);
return 0;
}