题解 | #点击消除#

点击消除

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的数组,从未到头依次对数组赋值,然后一个一个输出。

全部评论

相关推荐

object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务