由Java实现Valid Parentheses
一、题目
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()"
Output: true
Example 2:
Input: "()[]{}"
Output: true
Example 3:
Input: "(]"
Output: false
Example 4:
Input: "([)]"
Output: false
Example 5:
Input: "{[]}"
Output: true
二、解题思路
1、利用List集合实现一个栈;
2、将字符串s转换成字符数组,并循环遍历;
3、如果字符为:"{、(、["中的一个,则存入集合中;
4、如果字符为:"}、)、]"中的一个,则取出集合中最后一个元素进行比较;
5、如能匹配上,则删除集合中最后一个元素,否则返回false;
6、最后判断集合大小是否为0,如是则返回true。
三、代码实现
public boolean isValid(String s) {
if ("".equals(s)) {
return true;
} else {
Map parentheseMap = new HashMap();
parentheseMap.put(')', '(');
parentheseMap.put(']', '[');
parentheseMap.put('}', '{');
char[] sArr = s.toCharArray();
List stackList = new ArrayList();
for (int i = 0; i < sArr.length; i++) {
if (sArr[i] == '(' || sArr[i] == '[' || sArr[i] == '{') {
stackList.add(sArr[i]);
} else {无锡人流多少钱 http://wapyyk.39.net/wx/zonghe/fc96e.html
if (stackList.size() == 0) {
return false;
} else {
char temp = stackList.get(stackList.size() - 1);
if (temp == parentheseMap.get(sArr[i])) {
stackList.remove(stackList.size() - 1);
} else {
return false;
}
}
return stackList.size() == 0 ? true : false;
}
}
最新文章
- 将word文档A表格中的内容拷贝到word文档B表格中
- Bash 会清空从父进程继承来的 OLDPWD
- SQL 随记
- UvaLive6662 The Last Ant 模拟
- STL之stack栈
- php mysql_affected_rows获取sql执行影响的行数
- 【BZOJ1036】【树链剖分】树的统计Count
- HashSet的分析(转)
- HDU 4664 Triangulation【博弈论】
- Java基础之垃圾回收
- 剑指OFFER——调整数组顺序使奇数位于偶数前面
- php SeasLog使用以及liunx环境下安装
- Vue-router重修01
- input range样式优化
- 阅读:ECMAScript 6 入门(4)
- JavaScript--浅谈!=、!==、==和===的区别
- 配置Chrome Workspace功能
- WPS Office 2012 专业版 附正版序列号
- 如何配置 SpaceVim
- Python 源码剖析(一)【python对象】
热门文章
- 黑客攻防技术宝典web实战篇:攻击用户&#183;其他技巧习题
- Jmeter安装说明
- Hadoop端口访问
- bzoj 4860 [BeiJing2017]树的难题
- Bits Equalizer UVA - 12545
- linux下使用svn创建版本库和权限管理
- [已读]编写可维护的javascript
- nginx缓存配置及开启gzip压缩
- P3368 【模板】树状数组 2 单点查询与区间修改
- 【学习笔记】比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围