0分求助::>_<::
  • 板块P1241 括号序列
  • 楼主lonys
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/19 22:00
  • 上次更新2025/1/20 10:10:03
查看原帖
0分求助::>_<::
1629089
lonys楼主2025/1/19 22:00

代码:

#include<iostream>
#include<stack>
using namespace std;
char reverse(char bbb){
    switch(bbb){
        case '(':return ')';
        case '[':return ']';
        case ')':return '(';
        case ']':return '[';
    }
    return ' ';
}
bool cmp(char t,char y){
    if(t==y)return 1;
    else {
        if(reverse(t)==y)return 1;
        if(reverse(y)==t)return 1;
    }
    return 0;
}
int main(){
    stack<int>s;
    string a;
    string ans;
    cin>>a;
    for(int i=0;i<a.size();i++){
        char c=a[i];
        if(!s.empty()){
            if(s.top()==reverse(c)){
                s.pop();
                ans+=c;
            }
            else {
                if(!(cmp(s.top(),c))){
                    ans+=reverse(s.top());
                }
            }
        }
        else {
            s.push(c);
            ans+=c;
        }
    }
    cout<<ans;
}
2025/1/19 22:00
加载中...