我们可以将这道题变换成为看相同的序列有多少个
前一个序列和后一个序列和相等,以为中间这一段数字都是一样的,符合要求的
我们将数字减去'1'代表着:我们将一个相加的数列变为看一段是不是有字符串是不是为0的
#include<bits/stdc++.h>
using namespace std;int T,n;
string s;map<int,int>mp;
int main(){
cin>>T;
while(T--){mp.clear();
cin>>n>>s;mp[0]++;
long long ans=0,sum=0;
for(int i=0;i<n;i++){
sum+=s[i]-'1';
ans+=mp[sum];mp[sum]++;
}
cout<<ans<<endl;
}
}