首页 > 代码库 > 【LeetCode】20. Valid Parentheses
【LeetCode】20. Valid Parentheses
题目:
思路:用Stack基本操作完成。
要检测输入字符是否满足这个条件,一个非常合适的数据结构是stack,后进先出的特征正好满足检测的需求。在检测的时候,每次检查一个字符,如果是左括号,就入栈,如果是右括号,并且右括号和当前栈顶符号是左右配对的,那么就弹出栈顶并且进行下一次检测,如果不满足上面两种情况,就说明检查到了一个非法字符,返回false.
public class Solution { public boolean isValid(String s) { if(s.length()==0){ return true; } Stack<Character> st=new Stack<Character>(); st.push(s.charAt(0)); for(int i=1;i<s.length();i++){ if(!st.empty()&&isMatch(st.peek(),s.charAt(i))){ st.pop(); }else st.push(s.charAt(i)); } if(st.empty()){ return true; } return false; } public static boolean isMatch(char s,char p){ if((s==‘(‘&&p==‘)‘)||(s==‘[‘&&p==‘]‘)||(s==‘{‘&&p==‘}‘)){ return true; }else return false; } }
【LeetCode】20. Valid Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。