首页 > 其他分享 >【栈】表达式括号匹配

【栈】表达式括号匹配

时间:2024-08-22 21:06:02浏览次数:3  
标签:栈为 输出 匹配 正确 括号 表达式

题目描述

(1+(2+3)*(3+(8+0))+1-2) 这是一个简单的数学表达式,今天不是计算它的值,而是比较它的括号匹配是否正确。

前面这个式子可以简化为(()(()))这样的括号我们认为它是匹配正确的,

而((())这样的我们就说他是错误的。注意括号里面的表达式可能是错的,也可能有多个空格,对于这些我们是不用去管的,

我们只关心括号是否使用正确。

输入描述

给出一行表达式(长度不超过 100)。

输出描述

如果匹配正确输出括号的对数,否则输出-1。

用例

输入:(1+(2+3)*(3+(8+0))+1-2)
输出: 4

题目解析

  1. 遍历字符串内每一个字符
  2. 当遇到 ( 时,入栈
  3. 当遇到 ) 时,如果栈为空,则直接返回-1。如果栈不为空,则出栈一个(,配对数+1。
  4. 遍历完毕后,如果栈不为空,则返回-1。如果栈为空,返回配对数。

代码实现


标签:栈为,输出,匹配,正确,括号,表达式
From: https://www.cnblogs.com/jacobsblog/p/18374751

相关文章

  • jmeter中提取token值(正则表达式,)
    jmeter中提取token值(正则表达式)一、接口前准备案例链接:http://shop.duoceshi.com/uiid接口:http://manage.duoceshi.com/auth/codeget请求登录接口:http://manage.duoceshi.com/auth/loginPOST请求请求参数:{"username":"admin","password":"tlHpvw2zZLz1xL3+LF......
  • CSharp联合halcon实现模板匹配
    前言1、加载并显示图像功能。2、图像拖动缩放功能。3、绘制ROI:矩形、方向矩形、圆形、椭圆形。4、创建模板:参数修改、模板轮廓显示。5、匹配模板:参数修改、匹配轮廓显示、匹配结果显示。案例实操代码结构HalconModelSet_Ex:该目录空间下存放halcon算子相关模型(......
  • [C++]括号使用小技巧
    1.前言  对于一般的赋值语法,例如inta=0;  但你知道吗?使用括号可以同时写很多类型,编译器一般默认括号内最后一个类型为赋值类型,例如//编译器会选择最后一位进行赋值inta=(100,200,300,0);  此时,a的值就是0。2.改变函数返回值  有如下三个函数,返回值类型分别......
  • 陌生人社交匹配,IP定位下的不一定都是“俊男靓女”
    右滑yes,左滑no。从系统匹配到用户筛选,陌生人社交在过去发展了很长一段时间,现在熟人社交已经有微信这一巨头,但是陌生人社交还没有谁能够脱颖而出。或许是因为谣言泛滥、诈骗活动猖獗、暴力色情等信息大肆传播而使陌生人社交饱受诟病。那么如何通过ip定位进行社交匹配app的网络欺......
  • 【C#】.NET报错:所生成项目的处理器框架“MSIL”与引用“xxx”的处理器架构“AMD64”不
    一、现象所生成项目的处理器架构“MSIL”与引用“System.Data.SQLite,Version=1.0.60.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139,processorArchitecture=x86”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的......
  • str(int(value)).zfill(3) 是一个 Python 表达式,主要用于将数字转换为字符串并在字符
    str(int(value)).zfill(3)是一个Python表达式,主要用于将数字转换为字符串并在字符串前面补零,确保字符串的长度至少为3个字符。分解解释int(value):这个部分首先将value转换为整数。这假定value是一个可以被解释为整数的数值(如'42'或42.0)。如果value是一个浮点......
  • 字符串值提取工具-10-java 执行表达式引擎
    值提取系列字符串值提取工具-01-概览字符串值提取工具-02-java调用js字符串值提取工具-03-java调用groovy字符串值提取工具-04-java调用java?Janino编译工具字符串值提取工具-05-java调用shell字符串值提取工具-06-java调用python字符串值提取工具-07-java调......
  • 「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)
    概述为什么大家总觉得KMP难?难的根本就不是这个算法本身。在互联网上你可以见到八十种KMP算法的next数组定义和模式串回滚策略,把一切都懂得特别混乱。很多时候初学者的难点根本不在于这个算法本身,而是它令人痛苦的百花齐放的定义。有的next数组从0下标开始,有的从1开始;有的表......
  • MySQL 源码|51 - 语法解析:高级表达式
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|50-语法解析:基础表达式(simple_expr)在梳理了基础表达式simple_expr之后,我们就可以梳理更高级的表达式了。高级表达式的相关关系如下图所示:其中绿色节点为本章节梳......
  • MySQL 源码|50 - 语法解析:基础表达式(simple_expr)
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|37-语法解析:聚集函数MySQL源码|38-语法解析:窗口函数MySQL源码|43-语法解析:关键字函数MySQL源码|44-语法解析:非关键字函数MySQL源码|45-语法解析:通用函数MySQL......