[LeetCode]20. Valid Parentheses有效的括号
2024-09-04 05:20:53
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
要求判断括号是否匹配,我们用一个stack来存储,然后用map存储对应的括号序列
每次往栈里添加元素时,通过map判断是左括号[还是右括号],如果是右括号,可以通过map判断出来,就从
stack中pop出栈顶元素来和当前括号匹配,如果不匹配则说明整个序列都不匹配,如果是左括号就继续加入到stack中
class Solution {
public boolean isValid(String s) {
Stack<Character> stack=new Stack<Character>();
Map<Character,Character> map=new HashMap<Character,Character>();
map.put(')','(');
map.put('}','{');
map.put(']','['); for(int i=0;i<s.length();i++){
char c=s.charAt(i);
if(map.containsKey(c)){
char temp=stack.empty()? '#':stack.pop();
if(temp!=map.get(c)) return false;
}else stack.push(c);
}
return stack.isEmpty();
}
}
最新文章
- hive 调优总结
- cve-2015-5122漏洞分析
- 批量转换编码 (gbk ->; utf8)
- jquery ajax 返回值 中文时乱码或变成问号解决方法
- File控件选择图片的时候在Html5下马上预览
- link和import的区别
- R语言练习(二)
- 第19章 使用PXE+Kickstart部署无人值守安装
- eclipse中修改maven仓储
- 扫盲如何在ECLIPSE中使用条件断点
- 转:eclipse导入工程中文乱码问题
- HDU 3308	 LCIS 线段树区间更新
- 剪切板 复制文本 ClipboardManager
- ioctl函数详细说明
- 计蒜客模拟赛D2T2 蒜头君的排序:区间逆序对(移动端点) + 树状数组
- 201521123042《Java程序设计》第11周学习总结
- centos 时钟配置
- python异步编程之asyncio(百万并发)
- C++学习札记(1)
- python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)
热门文章
- oracle为IN OUT变量或OUT变量赋值时提示“表达式&#39;&#39;不能用作赋值目标”
- vs更改项目文件夹名称
- python 中文件夹的操作
- HDU6318-2018ACM暑假多校联合训练2-1010-Swaps and Inversions-树状数组
- [Swift实际操作]八、实用进阶-(10)使用Swift创建一个二叉树BinaryTreeNode
- time、random以及序列化模块
- JDBC_时间处理_Date_Time_Timestamp区别_随机日期生成
- SDUT OJ 数据结构实验之排序四:寻找大富翁
- [SCOI2009]windy数 BZOJ1026 数位dp
- jenkins安装maven工具