首页 > 代码库 > 20. Valid Parentheses
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.
思路:最重要的是检查如果有一个右边的符号,那左边肯定对应它的一个左边符号。这样用stack做就最符合。但是要检查特殊情况,例如只有一个右边符号,检查stack是不是空。另一种情况是左边符号的个数大于右边符号,循环结束后检查是不是空。
public class Solution { public boolean isValid(String s) { if(s.length()==0) { return true; } Stack<Character> res=new Stack<Character>(); for(int i=0;i<s.length();i++) { if(s.charAt(i)==‘(‘||s.charAt(i)==‘{‘||s.charAt(i)==‘[‘) { res.push(s.charAt(i)); } else { if(res.isEmpty()) { return false; } if(s.charAt(i)==‘)‘) { if(res.pop()!=‘(‘) { return false; } } else if(s.charAt(i)==‘}‘) { if(res.pop()!=‘{‘) { return false; } } else if(s.charAt(i)==‘]‘) { if(res.pop()!=‘[‘) { return false; } } } } if(!res.isEmpty()) { return false; } return true; }}
20. Valid Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。