题解:AcWing 6029 括弧匹配检验
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】AcWing6029. 括弧匹配检验 - AcWing题库【题目描述】假设表达式中允许包含两种括号圆括号和方括号其嵌套的顺序随意如([]())或[([][])]等为正确的匹配[(])或([]()或(()))均为错误的匹配。现在的问题是要求检验一个给定表达式中的括弧是否正确匹配输入一个只包含圆括号和方括号的字符串判断字符串中的括号是否匹配匹配就输出OK不匹配就输出Wrong。【输入】一个字符串。【输出】匹配就输出OK不匹配就输出Wrong。【输入样例】[([][])]【输出样例】OK【算法标签】#栈#【代码详解】#includebits/stdc.husingnamespacestd;intmain(){chars[260];// 输入字符串charstk[260];// 栈数组scanf(%s,s);// 输入字符串inttop0;// 栈顶指针初始为0intlen;// 字符串长度lenstrlen(s);// 计算字符串长度for(inti0;ilen;i)// 遍历字符串{if(s[i](||s[i][)// 如果是左括号{stk[top]s[i];// 左括号入栈}elseif(s[i])||s[i]])// 如果是右括号{// 检查是否匹配失败// 1. 栈为空没有对应的左括号// 2. 右括号是)但栈顶不是(// 3. 右括号是]但栈顶不是[if(top0||(s[i])stk[top]!()||(s[i]]stk[top]![)){printf(Wrong);// 无法配对return0;// 立即结束程序}else{top--;// 匹配成功栈顶元素出栈}}}if(top0)// 如果栈为空所有括号都匹配成功{printf(OK);// 输出OK}else{printf(Wrong);// 栈中还有未匹配的左括号}return0;// 程序正常结束}【运行结果】[([][])] OK
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2570037.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!