首页 前端知识 华为OD机试C卷-- 表达式括号匹配(Java & JS & Python & C)

华为OD机试C卷-- 表达式括号匹配(Java & JS & Python & C)

2024-05-26 00:05:41 前端知识 前端哥 915 838 我要收藏

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。

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

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

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

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

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

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

题目解析
这个问题是一个经典的栈应用问题,用于检查括号是否匹配。我们可以遍历整个表达式,每当遇到左括号时,就将一个占位符(例如 ‘(’)压入栈中;当遇到右括号时,检查栈顶元素是否为对应的左括号。如果是,则将栈顶元素弹出;如果不是或栈为空,则说明括号不匹配。

在这个问题中,我们不需要区分不同类型的括号(如小括号、中括号、大括号),因为输入表达式只包含小括号 ()。我们只需要维护一个栈来跟踪尚未匹配的左括号即可。

java算法源码

import 
转载请注明出处或者链接地址:https://www.qianduange.cn//article/9499.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!