文章

25

粉丝

0

获赞

90

访问

3.6k

头像
括号的匹配 题解:括号优先级相同也可以,不然只过20%
P1067 中山大学机试题
发布于2026年2月18日 11:36
阅读数 239

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

int main(){
    int n;
    cin>>n;
    cin.ignore();
    map<char,int> mp={{'{',0},{'[',1},{'(',2},{'<',3},{'}',4},{']',5},{')',6},{'>',7}};
    for(int i=0;i<n;i++){
        stack<char> st;
        string kh;
        getline(cin,kh);
        for(int j=0;j<kh.size();j++){
            if(mp[kh[j]]<4){
                if(st.empty()||mp[kh[j]]>=mp[st.top()])
                    st.push(kh[j]);
                else{
                    cout<<"NO"<<endl;
                    break;
                }
            }
            else if(mp[kh[j]]>=4){
                if(st.empty()){
                    cout<<"NO"<<endl;
                    break;
                }
                else if(mp[st.top()]==mp[kh[j]]-4)
                    st.pop();
                else{
                    cout<<"NO"<<endl;
                    break;
     ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发