题解 | #Problem E#

Problem E

https://www.nowcoder.com/practice/3bad4a646b5b47b9b85e3dcb9488a8c3

//debug了好久
#include <iostream>
#include <stack>
using namespace std;

int main(){
    int n;
    stack<char> op;
    cin>>n;
    while(n--){
        string s;
 
        while(op.size()) op.pop();
        cin>>s;
        for(int i = 0; i < s.size(); i ++){
            if(s[i] == '(' || s[i] == '[' || s[i] == '{') op.push(s[i]);
            else if(op.size() &&  s[i] == ')' && op.top() == '(') op.pop();
            else if(op.size() && s[i] == ']' && op.top() == '[') op.pop();
            else if(op.size() && s[i] == '}' && op.top() == '{' ) op.pop();
            else if(s[i] == '}' || s[i] == ']' || s[i] == ')'){
                op.push(s[i]);
            }
            
        }

        if(op.empty()) puts("yes");
        else puts("no");
    }
    return 0;
}

全部评论

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务