423. 有效的括号序列

提示

        LintCode中的相关算法题实现代码,可以在我的GitHub中下载。

题目需求

给定一个字符串所表示的括号序列,包含以下字符: '(', ')''{''}''[' and ']', 判定是否是有效的括号序列。

样例

括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。

解题思路

    使用栈,如果匹配就出栈,看最后栈中是否有剩余元素,如果有,无效括号。

实现代码

public class Solution {
    /**
     * @param s: A string
     * @return: whether the string is a valid parentheses
     */
   public boolean isValidParentheses(String s) {
        // write your code here
        if(s==null||s.length()==0) return true;
        Stack<String> stack=new Stack();
        stack.push(s.charAt(0)+"");
        for(int i=1;i<s.length();i++)
        {
            if(stack.size()==0)
            {
                stack.push(s.charAt(i)+"");
                continue;
            }
            if((stack.peek()+s.charAt(i)+"").equals("()")||(stack.peek()+s.charAt(i)+"").equals("[]")||(stack.peek()+s.charAt(i)+"").equals("{}"))
            {
                stack.pop();
            }
            else{
                stack.push(s.charAt(i)+"");
            }
        }
        if(stack.size()==0) return true;
        return false;
    }
}

猜你喜欢

转载自blog.csdn.net/oeljeklaus/article/details/80653370