林厚从信息学奥赛课课通第7单元第课-栈的应用课件.pptVIP

  • 19
  • 0
  • 约2.45千字
  • 约 13页
  • 2018-11-09 发布于浙江
  • 举报

林厚从信息学奥赛课课通第7单元第课-栈的应用课件.ppt

林厚从信息学奥赛课课通第7单元第课-栈的应用课件

第7单元第8课 栈的应用 例1:括号匹配(check,1s,256MB) 假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,即([]())或[([][])]等为正确的格式,[(]或([())或(()])均为不正确的格式.本题的任务是检测一个给定表达式中的括号是否正确匹配.输入一个只包含上述括号的字符串,判断字符串中的括号是否匹配,匹配就输出”OK”,不匹配就输出”Wrong”。 输入格式: 一行字符,只含有圆括号和方括号,个数小于255。 输出格式: 匹配就输出一行文本“OK”,不匹配就输出一行文本“Wrong”。 输入样例: [(]) 输出样例: Wrong 问题分析 一个匹配的括号序列,必定是左、右圆括号、方括号的数量一样多。但是反过来,一样多不一定是匹配的。 定义一个字符型的栈来维护左括号,按顺序处理括号序列: 1)遇到左括号:将它入栈。 2)遇到右括号:检查栈顶元素与右括号是否匹配。如果匹配,将栈顶左括号出栈;否则,判断出序列不匹配,结束。 如果读到了左括号,而栈为空,也不匹配。如果序列处理完毕,栈非空,也不匹配。 例2:表达式求值(NOIP2013普及组复赛,expr,1s,256MB) 题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式: 输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符

文档评论(0)

1亿VIP精品文档

相关文档