文章

19

粉丝

98

获赞

3

访问

9.9k

头像
括号匹配 题解:求大佬解惑,显示runtime error,75%数据通过
P1501 西北工业大学2015机试题
发布于2024年3月15日 16:05
阅读数 560

#include <bits/stdc++.h>
using namespace std;
int main()
{ 
    stack <char> mystack;
    char s[1000];
    int tag=0;
    scanf("%s",s);
    int len=strlen(s);
    for(int j=0;j<len;j++)
        {   
         if(s[j]=='('||s[j]=='[')
             mystack.push(s[j]);
        if(s[j]==')'||s[j]==']')
        {   char c=mystack.top();
             if(c=='('){if(s[j]==')')mystack.pop();else{tag=1;break;}}
             if(c=='['){if(s[j]==']')mystack.pop();else{tag=1;break;}}   
        }
        }
    if(tag==1) printf("NO");
     else printf("YES");
  return 0;
}

 

登录查看完整内容


登录后发布评论

4 条评论
Cookie‘s AE86
2024年3月16日 11:51

没有考虑到既不是(),也不是[ ]的情况

例如{[]()}

赞(0)

FIVEszc : 回复 Cookie‘s AE86: 题目已经限制了只有[]和()

2024年3月16日 14:14
snake VIP
2024年3月15日 17:19

栈顶元素出栈的时候,先判断是否为空

赞(0)

FIVEszc : 回复 snake: 牛,老哥你太猛了,我在好多地方看到你的回帖

2024年3月15日 19:43