求助
  • 板块灌水区
  • 楼主chty
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/13 14:17
  • 上次更新2024/10/13 16:22:59
查看原帖
求助
1162593
chty楼主2024/10/13 14:17

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;
}
2024/10/13 14:17
加载中...