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);elseq.push_front(c);}return back_insert ? string(q.begin(), q.end()):string(q.rbegin(), q.rend());}
};