首页 > 其他 > 详细

【LeetCode】20. Valid Parentheses

时间:2016-11-08 23:02:17      阅读:198      评论:0      收藏:0      [点我收藏+]

题目:

技术分享

思路:用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

原文:http://www.cnblogs.com/zhstudy/p/6044812.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!