洛谷P1928 外星密碼 題解 字尾表示式
阿新 • • 發佈:2021-11-18
題目連結:https://www.luogu.com.cn/problem/P1928
字尾表示式模板題。
示例程式:
#include <bits/stdc++.h> using namespace std; const int maxn = 20020; char s[maxn]; int n; stack<int> stk_num; stack<string> stk_str; int main() { cin >> s; n = strlen(s); stk_num.push(1); stk_str.push(""); for (int i = 0; i < n;) { if (s[i] == '[') { int num = s[i+1] - '0'; if (i+2 < n && isdigit(s[i+2])) { num = num * 10 + s[i+2] - '0'; i += 3; } else i += 2; stk_num.push(num); stk_str.push(""); } else if (s[i] == ']') { int num = stk_num.top(); stk_num.pop(); string str = stk_str.top(); stk_str.pop(); string tmp = ""; for (int i = 0; i < num; i ++) tmp += str; stk_str.top() += tmp; i ++; } else { stk_str.top() += s[i++]; } } cout << stk_str.top() << endl; return 0; }