【Stack】表达式合法判断
来源:互联网 发布:大酒神淘宝店地址 编辑:程序博客网 时间:2024/05/17 02:25
- 题目概要
- 分析
- AC 代码
题目概要
题目描述
写一段代码,判断一个包括’{‘,’[‘,’(‘,’)’,’]’,’}’的表达式是否合法(注意看样例的合法规则。)
给定一个表达式A,请返回一个bool值,代表它是否合法。
测试样例:
“[a+b*(5-4)]{x+b+b(({1+2)}}”
返回:true
分析
本题核心就是让左括号(不管大中小)的数量等于右括号(不管大中小)的数量就行。
AC 代码
方法一:
import java.util.Stack;public class ChkExpression { public boolean chkLegal(String A){ Stack<Character> stack = new Stack<>(); for(int i=0; i< A.length(); ++i){ char c = A.charAt(i); if( c =='[' || c== '(' || c=='{') stack.push(c); else if( c == ']' || c == ')' || c == '}') stack.pop(); } return stack.isEmpty(); }}
方法2:
import java.util.Stack;public class ChkExpression { public boolean chkLegal(String A) { Stack<Character> stack1 = new Stack<>();// [ ] Stack<Character> stack2 = new Stack<>();// ( ) Stack<Character> stack3 = new Stack<>();// { } for(int i=0; i< A.length(); i++){ char c = A.charAt(i); switch(c){ case '[': stack1.push(c); break; case '(': stack2.push(c); break; case '{': stack3.push(c); break; case ']': stack1.pop(); break; case ')': stack2.pop(); break; case '}': stack3.pop(); break; } } return stack1.empty() && stack2.empty() && stack3.empty(); }}
阅读全文
0 0
- 【Stack】表达式合法判断
- 表达式的合法判断
- 表达式合法判断
- 表达式合法判断
- 正则表达式判断合法IP
- [编程题]表达式合法判断
- 正则表达式 判断 邮件名合法
- 使用正则表达式判断合法的电话号码
- 使用正则表达式判断合法的电话号码
- 使用正则表达式判断合法的电话号码
- 正则表达式判断合法的电话号码
- 华为机试---表达式合法判断
- 《去哪网编程题》表达式合法判断
- 牛客网---2016---去哪儿表达式合法判断
- 判断是不是合法手机
- 判断是不是合法手机
- js判断日期合法
- js判断数字合法
- 素数距离问题
- 王爽 《汇编语言》 读书笔记 七 更灵活段定位内存地址段方法
- C#中 IoC 的实现
- c++ 重载 = 为什么返回引用类型
- 焦点事件
- 【Stack】表达式合法判断
- keyCode与charCode\mouseover与mouseenter
- 将给定字符串分割成多个小的回文串
- 4 采集单网页列表详细信息
- 依赖注入原理(为什么需要依赖注入)
- ATMEGA128+ADS1110+12864液晶显示程序和电路图
- HTML与CSS
- C语言中 malloc函数用法
- Python中内置的字典函数