#include<iostream>
#include<stack>
#include<string>
using namespace std;
bool Judge(string str) { //使用栈判断括号匹配
stack <char>s;
for (int i = 0; i < str.length(); i++) {
switch (str[i]) {
case '(':
s.push('(');
break;
case '[':
s.push('[');
break;
case '{':
s.push('{');
break;
case ')':
if (s.top() == '(') {
s.pop();
}
else {
return false;
}
break;
case ']':
if (s.top() == '[') {
s.pop();
}
else {
return false;
}
break;
case '}':
if (s.top() == '{') {
s.pop();
}
else {
return false;
}
break;
}
}
if (s.empty()) {
return true;
}
else {
return false;
}
}
int main() {
string str;
cin >> str;
cout << Judge(str) << endl;
system("pause");
return 0;
}
/*
[([][])]{()}
[(){]}
*/
C++使用栈解决括号匹配问题
原文作者:括号匹配问题
原文地址: https://blog.csdn.net/coolsunxu/article/details/80314454
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/coolsunxu/article/details/80314454
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。