QWQ
题目传送门
这是代码
#include<bits/stdc++.h>
using namespace std;
int arr[200005],brr[30];
int main() {
int n;
cin>>n;
string m;
cin>>m;
stack<char> s;
stack<int> s1;
s.push(m[0]);
s1.push(1);
for(int i=2; i<n; i++) {
if(s.empty()||s.top()!=m[i-1]) {
s.push(m[i-1]);
brr[m[i-1]-'a']=i;
s1.push(i);
} else{
char sk=s.top();
s.pop();
int k=s1.top();
s1.pop();
arr[i]=arr[brr[sk-'a']]+1;
}
}
int ans=0;
for(int i=1; i<=n; i++) {
ans+=arr[i];
}
cout<<ans;
}