比赛 20251022赛前模拟1 评测结果 AAAAAAAAAA
题目名称 解压缩 最终得分 100
用户昵称 李奇文 运行时间 0.029 s
代码语言 C++ 内存使用 3.74 MiB
提交时间 2025-10-22 11:46:51
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
string s;
int n;
int main(){
	freopen("extract.in","r",stdin);
	freopen("extract.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>s;
	s="[1"+s+"]";
	n=s.length();
	stack<int> b;
	stack<string> ss;
	ss.push("");
	for(int i=0;i<n;i++){
		int sum=0;
		if('A'<=s[i]&&s[i]<='Z'){
			string t;
			while('A'<=s[i]&&s[i]<='Z'){
				t=t+s[i];i++;
			}
			i--;
			t=ss.top()+t;
			ss.pop();
			ss.push(t);
		}
		if(s[i]=='['){
			while('0'<=s[i+1]&&s[i+1]<='9'){
				sum=sum*10+s[i+1]-'0';
				i++;
			}
			b.push(sum);
			ss.push("");
		}
		if(s[i]==']'){
			int k=b.top();
			b.pop();
			string h,t;
			h=ss.top();
			ss.pop();
			while(k--){
				t+=h;
			}
			t=ss.top()+t;
			ss.pop();
			ss.push(t);
		}
	}	
	cout<<ss.top();
	return 0;
}
//n*m-n-m-k+1;