20. Valid Parentheses
来源:互联网 发布:识汝不识丁网络剧微盘 编辑:程序博客网 时间:2024/06/05 06:53
同步发表于 http://algorithm.books.mafengshe.com/answer/20.html
题目描述:
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.
题目翻译
给出一个字符串仅包含如下字符‘(‘,’)’,’{‘,’}’,’[‘和’]’,判断输入的字符串是否有效。
所有括号以正确的顺序闭合该字符串即为有效,比如“()”和“()[]{}”都是有效的字符串,但是“(]”和“([)]”都是无效的字符串。
解题方案
标签: String
思路:
- 使用栈结构来存储
- 遍历字符串,当出现 ( , { , [ 这三个字符的时候,将字符压入栈中
- 否则则代表出现的是 ) , } , ] 这三个字符
- 当 ) , } , ] 这些字符时先判断栈内是否为空,如果为空,说明没有与之匹配的字符存在,则返回false
- 如果不为空,则判断是否栈顶元素与当前出现的字符匹配,即是否满足 () {} [] 两两匹配,如果不匹配则返回false
- 遍历结束后如果栈内还有元素,说明匹配不完全,则返回false,如果为空则匹配完全,返回true
代码:
class Solution { public boolean isValid(String s) { Stack<Character> st = new Stack<Character>(); for(int i=0;i<s.length();i++){ if(s.charAt(i) == '(' || s.charAt(i) == '{' || s.charAt(i) == '[') st.push(s.charAt(i)); else if(st.isEmpty() || s.charAt(i) == ')' && st.pop() != '(' || s.charAt(i) == '}' && st.pop() != '{' || s.charAt(i) == ']' && st.pop() != '[') return false; } return st.size() == 0; }}
阅读全文
0 0
- LeetCode 20. Valid Parentheses
- [LeetCode] 20.Valid Parentheses
- LeetCode --- 20. Valid Parentheses
- LeetCode 20.Valid Parentheses
- [Leetcode] 20. Valid Parentheses
- 20.Valid Parentheses
- 20.Valid Parentheses
- 20. Valid Parentheses
- 【leetcode】20. Valid Parentheses
- [leetcode] 20.Valid Parentheses
- [leetcode] 20. Valid Parentheses
- 20. Valid Parentheses
- 20. Valid Parentheses
- 20. Valid Parentheses
- Leetcode 20. Valid Parentheses
- 20. Valid Parentheses LeetCode
- 20. Valid Parentheses
- 20. Valid Parentheses
- 判断某年月日是当年的第几天
- 状态同步模式下的游戏掉线重连
- 日历控件My97DatePicker使用--onchange不生效
- MongoDB-MongoTemplate之模糊匹配多个字段
- java nio框架Netty
- 20. Valid Parentheses
- vs调试特别慢
- ubuntu 脚本 字符串截取时出现Bad substitution的解决办法
- Android面试收集
- Python——线程
- python处理CSV文件格式数据
- 30行代码,带你分分钟创建神经网络!(附工具&教程)
- 最大熵模型通俗理解和例子
- URL中的%22是什么意思