题解 | 括号配对问题

括号配对问题

https://www.nowcoder.com/practice/57260c08eaa44feababd05b328b897d7

#include<bits/stdc++.h>
using namespace std;
bool solve(string& s) {
    stack<char>sk;
    /*string s;
    getline(cin, s);*/
    int len = s.size();
    for (int i = 0; i < len; i++) {
        if (s[i] == '(' || s[i] == '[') {
            sk.push(s[i]);
        } else if (s[i] == ')') {
            if (sk.empty() || sk.top() != '(') {
                return false;
            }

            sk.pop();
        } else if (s[i] == ']') {
            if (sk.empty() || sk.top() != '[') return false;
            sk.pop();
        } else {
            continue;
        }
    }
    return sk.empty();
    //return true;
}

int main() {
    string s;
    getline(cin, s);
    if (solve(s))cout << "true";
    else {
        cout << "false";
    }
    return 0;
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务