被强迫发的一帖(猿辅导第一题)
#include <iostream>#include <vector>#include <queue>#include <string>using namespace std;class Solution{public:
vector<string> rev(vector<string> str){vector<string> res;for(int i = 0; i < str.size(); i++){res.push_back(helper(str[i]));}
return res;}
string helper(string s){if(s.size() == 0) return "";int i = 0;string res = "";while(i < s.size() && s[i] != '('){if(s[i] >= 'A' && s[i] <= 'Z'){res += s[i];i++;continue;}
int num = s[i] - '0';i++;while(s[i] >= '0' && s[i] <= '9'){num = num * 10 + (s[i] - '0');i++;}
string temp(num - 1, res[res.size() - 1]);res += temp;}
if(i == s.size()) return res;int end = s.find_last_of(')');string res1 = helper(s.substr(i + 1,end - i - 1));i = end + 1;int num = 0;while(s[i] >= '0' && s[i] <= '9'){num = num * 10 + (s[i] - '0');i++;}
for(int j = 0; j < num; j++){res += res1;}
string res2 = helper(s.substr(i,s.size() - i));res += res2;return res;}
};int main(){int n;cin >> n;if(n <= 0) return 0;vector<string> str;string temp;for(int i = 0; i < n; i++){cin >> temp;str.push_back(temp);}
Solution *s = new Solution();vector<string> res = s->rev(str);for(int i = 0; i < res.size(); i++){cout << res[i] << endl;}
return 0;}
#猿辅导##笔试题目#