描述
给定一个字符串,字符串只包含两种字符:左括号“(”和右括号”)”。请判断这些括号是否能匹配。如果能则输出Yes,不能则输出No。
输入
一行,括号序列(一个字符串)
输出
Yes/No
#include<iostream>
#include<cstdio>
#include<stack>
#include<cstring>
#define N 100
using namespace std;
int main()
{
stack<char> s;
string str;
cin>>str;
for(int i=0;i<str.size();i++)
{
if(str[0]==')')
{
cout<<"No"<<endl;
return 0;
}
if(str[i]=='(')
s.push(str[i]);
if(str[i]==')')
{
if(s.empty())//不处理空的情况,很容易越界
{
cout<<"No"<<endl;
return 0;
}
else if(s.top()=='(')
s.pop();
}
}
if(s.empty())
cout<<"Yes"<<endl;
if(!s.empty())
cout<<"No"<<endl;
return 0;
}