题解 | 点击消除

#include <iostream>
#include <cstring>
#include <stack>
#include <vector>
using namespace std;
const int N = 1e5+5;

int main() {
    stack<char> s;//用栈进行匹配
    string str;
    cin >> str;
    for(int i = 0; i < str.size(); i++){
        if(s.empty())
            s.push(str[i]);
        else{
            if(s.top()==str[i]){
                s.pop();
            }
            else{
                s.push(str[i]);
            }
        }
    }
    if(s.empty()){
        cout << 0 << endl;
        return 0;
    }
    int cnt = s.size();//未消除掉的字母个数
    vector<char> a(cnt);
    for(int i = cnt-1; i >=0; i--){
        a[i] = s.top();
        s.pop();
    }
    for(int i = 0; i < cnt; i++)    cout << a[i];
    cout << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务