当前位置:首页 C++ > 正文

c++编写一个函数,接受一个字符串,判断它是否是有效的括号表达式(括号必须正确嵌套)。

作者:野牛程序员:2023-08-11 20:28:31 C++阅读 2671

c++编写一个函数,接受一个字符串,判断它是否是有效的括号表达式(括号必须正确嵌套)。

#include <iostream>
#include <stack>
#include <string>

bool isValidParentheses(const std::string& str) {
    std::stack<char> s;
    for (char c : str) {
        if (c == '(' || c == '[' || c == '{') {
            s.push(c);
        } else if (c == ')' || c == ']' || c == '}') {
            if (s.empty()) {
                return false;
            }
            char top = s.top();
            s.pop();
            if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) {
                return false;
            }
        }
    }
    return s.empty();
}

int main() {
    std::string expression = "{[()]}";
    bool valid = isValidParentheses(expression);
    if (valid) {
        std::cout << "\\"" << expression << "\\" is a valid parentheses expression." << std::endl;
    } else {
        std::cout << "\\"" << expression << "\\" is not a valid parentheses expression." << std::endl;
    }
    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击