題目大意:
給定長度非0的非空01串S。
求S的非空連續子串T中’0’的個數- '1’的個數的最大值。
解題思路:
掃一遍即可
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int sum, ans;
char s[100005];
int main() {
scanf("%s", s + 1);
int len = strlen(s + 1);
for (int i = 1; i <= len; ++i) {
sum += (s[i] == '0') ? 1 : -1;
ans = max(ans, sum = max(sum, 0));
}
return !printf("%d", ans == 0 ? -1 : ans);
}