描述假设表达式中只包含三种括号:圆括号、方括号和花括号,它们可相互嵌套,如([{}])或({[][()]})等均为正确的格式,而{[]})}或{[()]或([]}均为不正确的格式.
输入一串括号
如果输入的右括号多余,输出:Extra right brackets
如果输入的左括号多余, 输出:Extra left brackets
如果输入的括号不匹配,输出:Brackets not match
如果输入的括号匹配,输出:Brackets match输入{{{{)))输出Brackets not match样例输入
{([)]}
样例输出
Brackets not match
#include <iostream> #include <stack> #include <string> using namespace std; stack<char> sta; int main() { string str; cin >> str; for (int i = 0; i < str.length(); i++) { switch (str.at(i)) { case '{': case '[': case '(': sta.push(str.at(i)); break; case ')': case ']': case '}': if (sta.empty()) { cout << "Extra right brackets" << endl; return 0; } else { char a = sta.top(),b= str.at(i); if (a=='('&&b==')' || a=='['&&b==']' || a=='{'&&b=='}') { sta.pop(); break; } else { cout << "Brackets not match" << endl; return 0; } } } } if (sta.empty()) cout << "Brackets match" << endl; else { cout << "Extra left brackets" << endl; } return 0; }