Magical String LeetCode solution in C++

1
class Solution {
2
public:
3
int magicalString(int n) {
4
string s = "122";
5
int sz = 3;
6
int start = 2, lastDig = 2;
7
while (sz < n) {
8
int cnt = s[start++] - '0';
9
int currDig = (lastDig == 2) ? 1 : 2;
10
for (int i = 0; i < cnt; i++) {
11
s.push_back('0' + currDig);
12
sz++;
13
}
14
lastDig = currDig;
15
}
16
int ans = 0;
17
for (int i = 0; i < n; i++) {
18
if (s[i] == '1') {
19
ans++;
20
}
21
}
22
return ans;
23
}
24
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0