判断表达式中开闭括号是否配对出现。运用栈实现表达式开、闭括号是否配对出现算法

news/2024/11/30 10:34:25/

判断表达式中开闭括号是否配对出现。运用栈实现表达式开、闭括号是否配对出现算法

算法思想:
每次扫描到一个左括号就入栈,扫描到右括号就出一个栈顶元素,看括号类型是否匹配。

如果某次扫描到右括号发现栈中已无元素可出,则匹配失败(右括号多于左括号)
如果某次扫描到右括号,出栈顶元素,发现两个括号类型不一样,匹配失败
还有一种情况就是,你把右括号都扫描完了,结构栈中还有元素,匹配失败(左括号多于右括号)

bool bracketCheck(char str[], int length) {//str是一个字符数组,里面存储了各种左括号和右括号//len表示该字符数组有多长SqStack S;InitStack(&S);//初始化一个栈for (int i = 0;i < length;i++) {if (str[i] == '(' || str[i] == '[' || str[i] == '{') {Push(&S, str[i]);//扫描到左括号,入栈}else {if (StackEmpty(&S))//扫描到右括号,但栈空return false;//匹配失败char topElem;Pop(&S, &topElem);//栈顶元素出栈//括号不匹配的三种情况if (str[i] == ')'&&topElem != '(')return false;if (str[i] == ']'&&topElem != '[')return false;if (str[i] == '}'&&topElem != '{')return false;}}return StackEmpty(&S);//全部匹配完,如果栈空则匹配成功
}int main() {char str[6] = {'(',')','[',']','{','}'};int len=strlen(str);if (bracketCheck(str,6)) {printf("匹配成功");}else {printf("匹配失败");}return 0;
}

http://www.ppmy.cn/news/1200269.html

相关文章

性能工作站,双十一大促,超值推荐:蝰蛇峡谷 NUC12SNKi7迷你主机,优惠抢购!

近年来&#xff0c;ITX主机和小型化系统变得越来越受欢迎。英特尔的NUC受到许多玩家们的关注。作为mini主机的代表NUC小巧设计和灵活性使它成为很多玩家和科技爱好者的选择。它的高性能和可玩性使得它在迷你型准系统市场上备受推崇。双11来临之际&#xff0c;我们分析下哪款高性…

软件外包开发需要注意的问题

软件外包开发是一种常见的商业实践&#xff0c;可以帮助企业降低成本、提高效率和获得专业技能。然而&#xff0c;要确保成功的外包开发项目&#xff0c;需要注意以下一些关键问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司…

048基于web+springboot的校园资料分享平台

欢迎大家关注&#xff0c;一起好好学习&#xff0c;天天向上 文章目录 一项目简介技术介绍 二、功能组成三、效果图四、 文章目录 一项目简介 本校园资料分享平台有管理员和用户两个角色。管理员功能有个人中心&#xff0c;学生管理&#xff0c;资料分享管理&#xff0c;资源分…

安达发|APS生产排程解决五金制造企业的需求

在五金制造行业中&#xff0c;生产排程一直是一个非常重要的环节。然而&#xff0c;由于五金行业的特点和痛点&#xff0c;传统的生产排程方法往往难以满足企业的需求。本文将针对五金行业的痛点&#xff0c;探讨如何利用APS生产排程解决这些问题。 首先&#xff0c;我们需要了…

java线程实现服务器与客户端互发消息

线程实现服务器与客户端互发消息 如果不用多线程来实现服务器与客户端互发消息则当一方发完消息后另一方才可以发&#xff0c;如果用了线程&#xff0c;因为多个线程可以同时执行&#xff0c;只要把发送和接收两个方法放入线程中让他们同时执行就可以实现服务器与客户端互发消…

187. 重复的DNA序列 --力扣 --JAVA

题目 DNA序列 由一系列核苷酸组成&#xff0c;缩写为 A, C, G 和 T.。 例如&#xff0c;"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时&#xff0c;识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s &#xff0c;返回所有在 DNA 分子中出现不止一次…

鲜花展示预约小程序的内容有有哪些

鲜花店市场规模非常高&#xff0c;一方面是鲜花的用途广泛且需求量增加&#xff0c;另一方面则是入行门槛低&#xff0c;很多城市一条街就有可能汇聚了多家门店&#xff0c;尤其是节假日&#xff0c;对客流量高的门店则更加考验&#xff0c;如花束选购预约、信息展示及客户咨询…

什么是影子IT,涉及哪些风险

影子 IT 是组织内使用的软件、硬件或服务&#xff0c;不为组织的 IT 部门所知&#xff0c;也不受其监控,这相当于员工使用未经授权的资源操作并行 IT 设置。影子 IT 的使用很容易危及组织的 IT 安全&#xff0c;由于这些未经批准的应用程序在 IT 部门的监视下溜走&#xff0c;它…