关于stack函数的使用例题讲解
本题是可以使用stack函数的典型例题,为了判断括号是否能够匹配,需要碰到’(‘时把它放进坑里,到’)'时判断有没有"(“可以和”)“抵消,有的话就删除”(",没的话就直接结束,直接输出。最后如果还有"("存在的话也是错误的。
以下是ac代码
#include <bits/stdc++.h>
using namespace std;
int main(){
char s[100001];
scanf("%s",s+1);
stack<int>st;
for(int i=1;s[i];i++){
if(s[i]=='('){
st.push('(');
}
else if(s[i]==')'){
if(st.empty()){
puts("NO");
return 0;
}
st.pop();
}
}
if(st.size()){
puts("NO");
}
else
{
puts("YES");
}
return 0;
}