分析:
可以发现1~10最多每个数都出现10次,因此字符串长度最多就是100,可以从字符串的每一位开始枚举,计算从第i位开始的次数以及最大限制,一旦满足字符出现的最大数量在限制以内,就多了一种方案,否则就不符合题意。
代码:
#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int main()
{
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n;
string s;
cin>>n>>s;
ll ans=0;
for(int i=0;i<s.size();i++)
{
map<char,int> m;
int maxn=0;
int sum=0;
for(int j=i;j<s.size();j++)
{
if(m[s[j]]==10) break;
if(m[s[j]]==0) sum++;
m[s[j]]++;
maxn=max(maxn,m[s[j]]);
if(maxn<=sum) ans++;
}
}
cout<<ans<<'\n';
}
return 0;
}