当前位置: 首页 > article >正文

数据结构,问题 E: 表达式括号匹配

题目描述

      假设一个表达式有英文字母(小写)和数字、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。

输入

输入文件包括一行数据,即表达式,

输出

输出文件包括一行,即“YES” 或“NO”。

样例输入 复制
2*(x+y)/(1-x)@
样例输出 复制
YES

 题解

#include<bits/stdc++.h>
using namespace std;
 
stack<char> st;
 
bool flag;
 
int main(){
    string s;
    cin >> s;
    for(char c : s){
        if(c == '(')st.push(c);
        else if(c == ')') {
            if(st.empty())flag = 1;
            else st.pop();
        }
    }
    if(!st.empty() || flag) cout << "NO" << '\n';
    else cout << "YES" << '\n';
    return 0;
}


http://www.kler.cn/a/382125.html

相关文章:

  • java项目之校园周边美食探索及分享平台(springboot)
  • redis源码系列--(二)--multi/exec/eval命令执行流程
  • qt QWizard详解
  • [mysql]修改表和课后练习
  • 小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统
  • 轻松理解操作系统 - 轻松了解 inode 是如何管理文件的
  • 英语写作中用identify 替代find
  • Interpreter 解释器模式
  • 【C++组合数学】2850. 将石头分散到网格图的最少移动次数|2001
  • 51单片机教程(五)- LED灯闪烁
  • html练习2
  • 工作中问题
  • SQL,力扣题目1767,寻找没有被执行的任务对【递归】
  • 【点云学习笔记】——分割任务学习
  • 常见的排序算法(二)
  • 微信小程序的汽车维修预约管理系统
  • 【xml转JSON】
  • nginx 搭建网站
  • Django Admin
  • Redis 中 Bitmap 原理和应用
  • LeetCode 2487.从链表中移除节点
  • C++ | Leetcode C++题解之第523题连续的子数组和
  • pytorch学习:矩阵分解:奇异值分解(SVD分解)
  • DevOps-课堂笔记
  • 服了!这波大选,赚最肥的居然是搞AI写作的
  • 深入浅出:解读注意力机制,让神经网络更“聪明”