数据结构–c++实现括号匹配 以下是C++实现括号匹配的代码和解释: “`cpp #include <iostream> #include <stack> #include <string> using namespace std; bool isMatch(char a, char b) { if (a == ‘(‘ && b == ‘)’) return true; if (a == ‘[‘ && b == ‘]’) return true; if (a == ‘{‘ && b == ‘}’) return true; return false; } bool check(string s) { stack<char> st; for (int i = 0; i < s.size(); i++) { if (s[i] == ‘(‘ || s[i] == ‘[‘ || s[i] == ‘{‘) { st.push(s[i]); } else { if (st.empty() || !isMatch(st.top(), s[i])) { return false; } st.pop(); } } return st.empty(); } int main() { string s; cin >> s; if (check(s)) { cout << “yes” << endl; } else { cout << “no” << endl; } return 0; } “` 解释: 1. `isMatch`函数用于判断两个括号是否匹配,如果匹配则返回`true`,否则返回`false`。 2. `check`函数用于检查输入的字符串是否符合括号匹配的规则。首先定义一个栈`st`,遍历字符串`s`中的每个字符,如果是左括号,则将其入栈;如果是右括号,则判断栈是否为空或者栈顶素与该右括号是否匹配,如果不匹配则返回`false`,否则将栈顶素出栈。最后如果栈为空,则说明括号匹配成功,返回`true`,否则返回`false`。 3. 在`main`函数中,首先读入一个字符串`s`,然后调用`check`函数进行括号匹配检验,如果返回`true`,则输出`yes`,否则输出`no`。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/36185.html