用队列,岂不美哉

吐泡泡

http://www.nowcoder.com/questionTerminal/f86fa2221c094b3d8d1fc79bae450d96

看了题解中间都是用栈写的,我来补充一个用队列写的。
前面都是一样的,判断,压入弹出。但是到后面就是用队列的好处,直接从头部出去,不需要额外的空间。
另外,for (char &c : str)是C11的新语法,意为对str中所有元素遍历一遍,将每个元素依次赋值(或引用)给c进行循环
代码如下

#include<iostream>
#include<deque>
#include<string>
using namespace std;
deque<char> st;
string str;
int main() {
    while (cin >> str) {
        for (char &c : str) {
            if (st.empty()||st.back()!=c) st.push_back(c);
            else{
                if (c == 'o') {
                    st.pop_back();
                    if (!st.empty() && st.back() == 'O') st.pop_back();
                    else st.push_back('O');
                }
                else st.pop_back();
            }
        }
        while (!st.empty()) { cout << st.front(); st.pop_front(); }
    }
}
全部评论

相关推荐

昨天 20:46
武汉大学 Java
点赞 评论 收藏
分享
11-25 09:41
已编辑
Java
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
投了多少份简历才上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务