Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 3614. Process String with Special Operations II
題目:

解答:
class Solution {
public:
char processStr(string s, long long k) {
long long len = 0;
for (char ch : s) {
switch (ch) {
case '*':
len = max(0LL, len - 1);
break;
case '#':
len <<= 1;
break;
case '%':
break;
default:
len += 1;
break;
}
}
cout << len << endl;
if (k >= len) {
return '.';
}
for (int i = s.size() - 1; i >= 0; --i) {
char ch = s[i];
switch (ch) {
case '*':
len += 1;
break;
case '#':
len >>= 1;
if (k >= len) {
k -= len;
}
break;
case '%':
k = len - 1 - k;
break;
default:
len -= 1;
if (len == k) {
return ch;
}
break;
}
}
return '.';
}
};