有一个括号序列,现在要检测一下它是否是合法的括号序列
合法括号序列的定义是:
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;
int main(void)
{
stack<char> mystack;
string nums;
cin >> nums;
for(int i = 0; i < nums.size(); i++)
{
if(nums[i] == '(')
{
mystack.push(nums[i]);
}
else
{
if(mystack.empty())
{
cout << "0" << endl;
return 0;
}
else
{
mystack.pop();
}
}
}
if(mystack.size() == 0)
cout << "1" << endl;
else
cout << "0" << endl;
return 0;
}