求 {sn}(si∈[o,p]) 中最长的所有出现的字符的数量相等的子串长度。
不知道为啥错。
#include <bits/stdc++.h>
using namespace std;
long long n, maxx = -0x3f3f3f3f;
long long a[200010], sum[200010];
char c;
map<int, long long> Mp;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> c;
if (c == 'l') a[i] = 1;
else if (c == 'r') a[i] = -1;
}
for (int i = 1; i <= n + 1; i++) {
sum[i + 1] = sum[i] + a[i];
}
for (int i = 1; i <= n + 1; i++) {
if (Mp[sum[i]]) maxx = max(maxx, i - Mp[sum[i]]);
else Mp[sum[i]] = i;
}
cout << maxx;
return 0;
}