编写一个算法判断表达式中的括号是否正确配对
时间: 2023-04-19 20:04:16 浏览: 116
8_大小括号算术_栈_源码
5星 · 资源好评率100%
算法如下:
1. 初始化一个栈。
2. 遍历表达式中的每个字符。
3. 如果字符是左括号(即“(”、“{”、“[”),则将其压入栈中。
4. 如果字符是右括号(即“)”、“}”、“]”),则从栈中弹出一个元素。
5. 如果弹出的元素不是与当前右括号相匹配的左括号,则表达式中的括号不正确配对,返回 false。
6. 如果遍历完表达式后,栈中还有元素,则表达式中的括号不正确配对,返回 false。
7. 如果遍历完表达式后,栈中没有元素,则表达式中的括号正确配对,返回 true。
示例:
假设表达式为“{[(3+4)*5]-2}/(1+2)”,则算法执行过程如下:
1. 初始化一个空栈。
2. 遍历表达式中的每个字符,依次为“{”、“[”、“(”、“3”、“+”、“4”、“)”、“*”、“5”、“]”、“-”、“2”、“)”、“/”、“(”、“1”、“+”、“2”、“)”。
3. 当遇到左括号时,将其压入栈中。
4. 当遇到右括号时,从栈中弹出一个元素。
5. 当弹出的元素与当前右括号不匹配时,返回 false。
6. 当遍历完表达式后,栈中没有元素,返回 true。
因此,该表达式中的括号正确配对。
阅读全文