题解
表达式括号匹配
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main(){ stack<char> s; //用来存所有左括号 char c; //每次读取的单个字符 while(cin>>c){ //循环读取输入里每一个字符 if(c == '@'){ //停止读取 break; } if(c == '('){ // 碰到左括号入栈保存 s.push(c); } if(c == ')'){ // 碰到右括号,需要匹配左括号 if(s.empty()){ // 栈空,没有多余左括号和它配对,括号不匹配 cout<<"NO"<<endl; return 0; } s.pop(); // 弹出一个左括号,完成一对括号匹配 } } if(s.empty()){ // 遍历完所有字符,栈空代表全部左括号都配对完毕 cout<<"YES"<<endl; }else{ // 栈里还有剩下左括号,右括号数量不够,匹配失败 cout<<"NO"<<endl; } return 0; }
- 1