【牛客算法竞赛入门课第二节例题、习题】吐泡泡

吐泡泡

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





#include <cstring>
#include <cstdio>
#include <stack>
using namespace std;
const int N = 110;
stack<char> s;
char str[N];
void print(){
    char ans[N];
    int idx = 0;
    while(!s.empty()){
        ans[++idx] = s.top();
        s.pop();
    } 
    for(int i = idx;i > 0;i--){
        printf("%c",ans[i]);
    }
    puts("");
}
int main(){
    while(~scanf("%s",str)){
        while(s.size()) s.pop();
        int n = strlen(str);
        for(int i = 0;i < n;i++){
            char ch = str[i];
            if(s.empty()) s.push(str[i]);
            else if(ch == 'O' && s.top() == 'O'){
                s.pop();
            }else if(ch == 'o' && s.top() == 'o'){
                s.pop();
                if(s.size() && s.top() == 'O') s.pop();
                else s.push('O');
            }else s.push(ch);
        }
        print();
    }
    return 0;
}
全部评论

相关推荐

挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务