题目描述
有一个括号序列,现在要检测一下它是否是合法的括号序列
合法括号序列的定义是:
1.空序列是合法括号序列。
2.如果S是合法括号序列,那么(S)是合法括号序列。
3.如果A和B都是合法括号序列,那么AB是合法括号序列。
输入格式
输入一行,长度为N的括号序列S(0<=N<=50000,S只包括()这2种字符)
输出格式
输出一行,1表示括号序列合法,0表示括号序列不合法
样例
【样例输入】
(())(
【样例输出】
0
题解:
#include <bits/stdc++.h>
using namespace std;
string s;
stack<char> a;
char ch;
int main() {
getline(cin, s);
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(') {
a.push(s[i]);
} else {
if (a.empty()) {
cout << 0 << endl;
return 0;
} else {
a.pop();
}
}
}
if (a.empty()) {
cout << 1 << endl;
} else {
cout << 0 << endl;
}
return 0;
}