Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99490 | 胡晏玮 | 表达式括号匹配2 | C++ | 编译错误 | 0 | 0 MS | 0 KB | 902 | 2023-08-22 21:24:06 |
#include <iostream> #include <cstring> using namespace std; void _init_(char arr[],int &top){ arr = {}; top = 0; } void _push_(int &top,char arr[],char value,int maxhigh){ if(top < maxhigh){ top++; arr[top] = value; } } char _pop_(int &top,char arr[]){ if(top > 0){ top--; return arr[top+1]; } return -1; } bool _notempty_(int top){ return top; } int main(){ char arr[101],s[100]; int top; _init_(arr,top); cin.getline(s,100); for(int i=0;i<strlen(s);i++){ if(s[i] == '('){ _push_(top,arr,')',100); } else if(s[i] == '['){ _push_(top,arr,']',100); } else if(s[i] == '{'){ _push_(top,arr,'}',100); } else if((s[i]==')' || s[i]==']' || s[i]=='}') && (!_notempty() || s[i] == _pop_(top,arr))){ cout << "NO"; return 0; } } if(_notempty_(top)){ cout << "NO"; return 0; } cout << "YES"; return 0; }