文章

27

粉丝

86

获赞

10

访问

30.4k

头像
括号的匹配 题解:C++ <stack>
P1067 中山大学2019年机试题
发布于2023年8月22日 11:29
阅读数 1.4k

C++

分别考虑8种括号

#include <iostream>
#include <string>
#include <stack>
using namespace std;
bool isMatched(string str){
    stack<char> chars;
    for(int j = 0; j < str.size(); j++){
        if(str[j] == '<'){
            chars.push(str[j]);
        }
        else if(str[j] == '('){
            if(!chars.empty() && chars.top() != '<'){
                chars.push(str[j]);
            }
            else if(chars.empty()){
                chars.push(str[j]);
            }
            else{
                return false;
            }
        }
        else if(str[j] == '['){
            if(!chars.empty() && chars.top() != '<' && chars.top() != '('){
                chars.push(str[j]);
            }
            else if(chars.empty()){
                chars.push(str[j]);
            }
            else{
                return false;
            }
        }
        else if(str[j] == '{'){
    ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发