A30002.表达式括号匹配(stk)
2025-08-18 14:28:48
发布于:江苏
0阅读
0回复
0点赞
珍爱生命,远离STL(虽然我知道栈有点多余)
#include <iostream>
using namespace std;
const int stklim = 114514;
struct stack{
public:
void push(int v) {
if (tp == stklim-1) return;
tp++;
stk[tp] = v;
return;
}
void pop(void) {
if (tp == -1) return;
stk[tp] = 0;
tp--;
return;
}
int top(void) {
if (tp == -1) return 0;
return stk[tp];
}
size_t size(void) {
return tp+1;
}
bool empty(void) {
return tp == -1;
}
private:
int tp = -1;
int stk[stklim];
};
stack stk;
int main(){
char c;
while (cin >> c){
if (c=='@') break;
if (c=='('){
stk.push(1);
}else if (c==')'){
if (stk.empty()){
cout<<"NO";
return 0;
}else {
stk.pop();
}
}
}
if(stk.empty())
cout << "YES";
else
cout << "NO";
return 0;
}
这里空空如也
有帮助,赞一个