decode-string 1.0.0
Decode String
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1#include <bits/stdc++.h>
2
3using namespace std;
4
5class Solution
6{
7public:
8 string decodeString(string s)
9 {
10 stack<pair<int, string>> pairs; // (multiplier, current_string)
11 int multiplier = 0;
12 string current_string = "";
13
14 for (char el : s)
15 {
16 if (isdigit(el))
17 multiplier = multiplier * 10 + (el - '0');
18 else if (el == '[')
19 {
20 pairs.push({multiplier, current_string});
21 multiplier = 0;
22 current_string = "";
23 }
24 else if (el == ']')
25 {
26 auto [prev_multiplier, prev_string] = pairs.top();
27 pairs.pop();
28 string constructed = "";
29 for (int i = 0; i < prev_multiplier; ++i)
30 constructed += current_string;
31 current_string = prev_string + constructed;
32 }
33 else
34 current_string += el;
35 }
36 return current_string;
37 }
38};
39
40int main()
41{
42 string input("3[a2[k]]2[bc1[z]]");
43 try
44 {
45 cout << "input: " << input << endl;
46 cout << "output: " << Solution().decodeString(input) << endl;
47 }
48 catch(const std::exception& e)
49 {
50 std::cerr << e.what() << '\n';
51 }
52 return 0;
53}
string decodeString(string s)
Definition main.cpp:8
int main()
Definition main.cpp:40