报文解压缩(华为机试)

#include<iostream>
#include<string>
#include<stack>
#include<algorithm>
using namespace std;
string op(int num, string& str) {
	string temp;
	for (int i = 0; i < num; ++i) {
		temp += str;
	}
	return temp;
}
int main() {
	string s;
	getline(cin, s);
	stack<char> st;
	string res;
	for (char c : s) {
		if (c != ']') {
			st.push(c);
		}
		else
		{
			string str;
			while (!st.empty() && (st.top()>'9'||st.top()<'0')) {
				if (st.top() == '[') {
					st.pop();
					break;
				}
				str += st.top();
				st.pop();
			}
			reverse(str.begin(), str.end());
			int num = 0;
			while (!st.empty() && st.top() >= '0' && st.top() <= '9') {
				int a = st.top() - '0'; cout << "a=" << a<<' ';
				num *= 10;
				num+= a; cout << "num=" << num << endl;
				st.pop();
			}
			//
			res =str+res;
			res = op(num, res); cout << res<<' ' << num << endl;
		}

	}
	cout << res << endl;
	//1[D3[C2[B1[A]]]] 输出DCBABACBABACBABA;
}
posted @   chunbai11  阅读(159)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示