首页 > 代码库 > 51nod 1393 1393 0和1相等串
51nod 1393 1393 0和1相等串
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1393
当0和1的数量差值为0时,进行记录和ans进行比较,其他的,差值相等时,0和1的数量一定相等。用后面的减前面的情况。
#include<bits/stdc++.h>using namespace std;char s[1000005];int a[1000005],b[1000005];map<int,int>m;main(){ int len,i,ans=0,t; scanf("%s",s); len=strlen(s); for(i=0;i<len;i++) { a[i+1]=a[i]; b[i+1]=b[i]; if(s[i]==‘0‘) a[i+1]++; if(s[i]==‘1‘) b[i+1]++; t=b[i+1]-a[i+1]; if(t==0) ans=max(ans,i+1); else { if(m[t]) ans=max(i+1-m[t],ans); else m[t]=i+1; } } printf("%d",ans);}
51nod 1393 1393 0和1相等串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。