LeetCode 20.Valid Parentheses

题意

给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

解题思路

使用栈,不匹配入栈,匹配出栈,最后栈为空则字符串有效。

参考代码

class Solution {
    public int getType(String s) {
        if (s.equals("(")) return -1;
        if (s.equals(")")) return 1;
        if (s.equals("{")) return -2;
        if (s.equals("}")) return 2;
        if (s.equals("[")) return -3;
        if (s.equals("]")) return 3;
        return 0;
    }
    public boolean isValid(String s) {
        Stack st = new Stack();
        for (int i=0;i1);
            if (st.isEmpty()) st.push(tmp);
            else {
                String str = st.peek();
                if (getType(str)+getType(tmp)==0) st.pop();
                else st.push(s.substring(i,i+1));
            }
        }
        if (st.isEmpty()) return true;
        return false;
    }
}

你可能感兴趣的:(leetcode,stack,LeetCode,LeetCode)