6RE!为什么!
查看原帖
6RE!为什么!
1184485
STEAMZzR01024602楼主2024/7/5 21:07
#include<bits/stdc++.h>
using namespace std;
struct man
{
    char b;
    int flag,num;
};
stack<int> a;
int main()
{
    string s;
    cin>>s;
	int S=s.size();
	man sta[S+1000];
    for(int i=0;i<S;i++)
    {
        sta[i+1].b=s[i];
        sta[i+1].flag=0;
        sta[i+1].num=i;
    }
    for(int i=1;i<=S;i++)
    {
        if(sta[i].b=='('||sta[i].b=='[') a.push(sta[i].b);
        else
        {
            if(sta[i].b==a.top())
            {
                sta[i].flag=1;
                sta[i-1].flag=1;
            }
        }
    }
    for(int i=1;i<=S;i++)
    {
        if(sta[i].flag==1) cout<<sta[i].b;
        else
        {
            if(sta[i].b=='('||sta[i].b==')') cout<<"()";
            else if(sta[i].b=='['||sta[i].b==']') cout<<"[]";
        }
    }
    return 0;
}
2024/7/5 21:07
加载中...