题解 | #点击消除#

点击消除

https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5

#include <iostream>
#include <bits/stdc++.h>
#include <string>
using namespace std;




int main() {
    stack<char> ms;
    string input_s;
    cin>>input_s;
    for(int i=0;i<input_s.size();i++){
        if(ms.empty()||ms.top()!=input_s[i]){
            ms.push(input_s[i]);
        }else{
            ms.pop();
        }

    }
    if(ms.empty()){
        cout<<0<<endl;
    }else{
        int n=ms.size();
        char s_out[n];
        int j=0;
        for(int i=n-1;i>=0;i--){
            s_out[i]=ms.top();
            ms.pop();
        }
        for(int i=0;i<n;i++) cout<<s_out[i];
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

比较重要的是栈的倒序输出,需要新定义一个char的数组,从未到头依次对数组赋值,然后一个一个输出。

全部评论

相关推荐

10-22 19:44
门头沟学院 Java
KKorz:我以为又疯一个呢,你来真的啊?
点赞 评论 收藏
分享
09-12 11:55
已编辑
湖南工商大学 Java
那一天的Java_J...:这种一堆问题的,别去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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