《LeetBook》leetcode题解(20):Valid Parentheses[E]——栈解决括号匹配问题
来源:互联网 发布:手机棋牌源码 编辑:程序博客网 时间:2024/06/09 23:28
我现在在做一个叫《leetbook》的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看
书的地址:https://hk029.gitbooks.io/leetbook/
20. Valid Parentheses
问题
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.
思路
这道题很简单,就是一个经典的栈的例子——表达式中的括号符号匹配。
- 遇见了左括号就进栈
- 遇见了右括号就出栈
- 如果栈为空,出错
- 如果出栈元素不是匹配的括号,出错
这里解决出括号匹配用了一个小tick,就是利用ASCII码,匹配的括号的ascii码都不会相差太远
- ‘(’ ‘)’ 相差1
- ‘[’ ‘]’ ‘{’ ‘}’ 相差2
public class Solution { public boolean isValid(String s) { if(s.length() == 0) return false; Stack<Character> stack = new Stack<Character>(); // 创建堆栈对象 for(int i = 0;i < s.length(); i++) { if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{') stack.push(s.charAt(i)); if(s.charAt(i) == ')' || s.charAt(i) == ']' || s.charAt(i) == '}') { if(stack.empty()) return false; char out = stack.pop(); if(out - s.charAt(i) > 2) return false; } } if(stack.empty()) return true; return false; }}
0 0
- 《LeetBook》leetcode题解(20):Valid Parentheses[E]——栈解决括号匹配问题
- LeetCode 20 Valid Parentheses 括号匹配问题
- (leetcode)Valid Parentheses --- 括号匹配问题
- leetcode 20 Valid Parentheses 括号匹配
- LeetCode 20 Valid Parentheses(用栈判断括号匹配)
- [LeetCode]—Longest Valid Parentheses 最长括号匹配
- LeetCodet题解--20. Valid Parentheses(括号匹配问题)
- 《LeetBook》leetcode题解(10): Regular Expression Matching——DP解决正则匹配
- 【leetcode】括号符匹配问题(Parentheses):Valid Parentheses|Generate Parentheses|LongestValid Parentheses
- Leetcode刷题记——20. Valid Parentheses (有效的括号即括号匹配)
- LeetCode20——Valid Parentheses(括号匹配问题,使用栈的知识)
- 《LeetBook》leetcode题解(19):Remove Nth Node From End of List[E]——双指针解决链表倒数问题
- LeetCode | Valid Parentheses(括号匹配)
- LeetCode Longest Valid Parentheses 括号匹配
- LeetCode Valid Parentheses(判断括号是否匹配)
- 【LeetCode】 括号匹配1 Valid Parentheses
- 【LeetCode】最长括号匹配Longest Valid Parentheses
- leetcode 题解 || Valid Parentheses 问题
- HDU 1003 Max Sum
- zoj 3430 AC自动机
- torch7学习笔记1——itorch_notebook与lua编译的安装
- RTSP协议
- 345. Reverse Vowels of a String
- 《LeetBook》leetcode题解(20):Valid Parentheses[E]——栈解决括号匹配问题
- AFNetworking 2.x 的SSL身份认证
- MySql乱码解决
- COM口 大于9 连接不上问题总结
- 关于Mac下的Android Studio无法显示类的相关文档和关联源代码的问题
- 从头认识多线程-2.3 synchronized持有对象锁与类锁的不同点
- 简单聊一下Android 6.0的运行时权限
- fedora 一命令安装 maven
- TCP/IP SOCKET HTTP及HTTPS之间的关系及各自特性之总结