1. 题意
当字符串出现 i i i时,反转 当前出现的字符串。
2. 题解
- 直接模拟即可
复杂度 o ( n 2 ) o(n^2) o(n2)
class Solution {
public:
string finalString(string s) {
string ans;
for (auto c:s) {
if (c == 'i') {
reverse(ans.begin(), ans.end());
}
else {
ans.push_back(c);
}
}
return ans;
}
};
- 双端队列
当出现翻转字符的时候,换方向进行插入
class Solution {
public:
string finalString(string s) {
deque<char> q;
bool back_insert = true;
for (auto &c:s) {
if (c == 'i')
back_insert = !back_insert;
else if (back_insert)
q.push_back(c);
else
q.push_front(c);
}
return back_insert ? string(q.begin(), q.end()):string(q.rbegin(), q.rend());
}
};