2024年5月27日发(作者:)
括号的匹配(表达式的合法性检查)
【问题描述】
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号
构成,以―@‖作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,
若匹配,则返回―YES‖;否则返回―NO‖。假设表达式长度小于255,左圆括号少于20个。
编程求一个后缀表达式的值
【问题描述】
从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、
乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式
是否合法。以@作为结束标志。
比如,16–9*(4+3)转换成后缀表达式为:
16□9□4□3□+*–,在字符数组A中的形式为:
栈中的变化情况:
运行结果:-47
模拟计算机处理算术表达式过程。从键盘上输入算术表达式串(只含+、-、×、÷运算
符,允许含括号),输出算术表达式的值。设输入的表达式串是合法的。
提示:建立两个栈,一个是操作数栈(number),一个是运算符栈(symbol),根据运算符的
优先级对两个栈进行相应的操作。
1、表达式括号匹配()
【问题描述】
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号
构成,以―@‖作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,
若匹配,则返回―YES‖;否则返回―NO‖。表达式长度小于255,左圆括号少于20个。
【输入文件】
输入文件包括一行数据,即表达式,
【输出文件】
输出文件包括一行,即―YES‖ 或―NO‖。
【样例输入1】
2*(x+y)/(1-x)@
【样例输出1】
YES
【样例输入2】
(25+x)*(a*(a+b+b)@
【样例输出2】
NO
2、括弧匹配检验()
【问题描述】
假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]
())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。
现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?
输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出
―OK‖ ,不匹配就输出―Wrong‖。
输入一个字符串:[([][])],输出:OK
【输入格式】
输入仅一行字符(字符个数小于255)
【输出格式】
匹配就输出 ―OK‖ ,不匹配就输出―Wrong‖。
【输入样例】
[(])
【输出样例】
Wrong
3、字符串匹配问题()
【问题描述】
字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互
相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]), ([])
都应该输出NO。
【输入格式】
文件的第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n
行,每行都是一个由括号组成的长度不超过255的字符串。
【输出格式】
在输出文件中有N行,每行都是YES或NO。
【输入样例】
5
{}{}<><>()()[][]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{<>}{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]
><}{{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]
发布评论