File tree 1 file changed +11
-12
lines changed
1 file changed +11
-12
lines changed Original file line number Diff line number Diff line change @@ -5,28 +5,27 @@ class Solution {
5
5
public:
6
6
string decodeString (string s) {
7
7
string curr;
8
- stack <int > nums;
9
- stack <string> strs;
8
+ vector <int > nums;
9
+ vector <string> strs;
10
10
int n = 0 ;
11
11
for (const auto & c: s) {
12
12
if (isdigit (c)) {
13
13
n = n * 10 + c - ' 0' ;
14
+ } else if (isalpha (c)) {
15
+ curr += c;
14
16
} else if (c == ' [' ) {
15
- nums.emplace (n);
17
+ nums.emplace_back (n);
18
+ strs.emplace_back (curr);
16
19
n = 0 ;
17
- strs.emplace (curr);
18
20
curr.clear ();
19
21
} else if (c == ' ]' ) {
20
- for (; nums.top () > 0 ; --nums.top ()) {
21
- strs.top () += curr;
22
+ for (; nums.back () > 0 ; --nums.back ()) {
23
+ strs.back () += curr;
22
24
}
23
- nums.pop ();
24
- curr = strs.top ();
25
- strs.pop ();
26
- } else {
27
- curr += c;
25
+ nums.pop_back ();
26
+ curr = move (strs.back ()); strs.pop_back ();
28
27
}
29
28
}
30
- return strs. empty () ? curr : strs. top () ;
29
+ return curr;
31
30
}
32
31
};
You can’t perform that action at this time.
0 commit comments