#include<bits/stdc++.h>
#include<stack>
using namespace std;
string s;
bool judge(string s)
{
stack<char> arr;
for(int i=1;i<=s.size();i++)
{
if(s[i-1]=='('||s[i-1]=='[')
{
arr.push(s[i-1]);
}
if(s[i-1]==')')
{
if(arr.empty()||arr.top()!='(') return false;
if(arr.top()=='(') arr.pop();
}
if(s[i-1]==']')
{
if(arr.empty()||arr.top()!='[') return false;
if(arr.top()=='[') arr.pop();
}
}
if(arr.empty()) return true;
else return false;
}
int main() {
//stack<char> arr;
//string s;
cin>>s;
if(judge(s)) cout<<"true"<<endl;
else cout<<"false"<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")
先访问栈里面是否为空,再取arr.top()才可以找到;否则如果栈内为空会导致运行超载。

京公网安备 11010502036488号