Valid Parentheses

思路非常简单没有可说的,左括号压入右括号弹出即可,要注意的是最后的判断是栈为空才是合法序列,下面是代码

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        stack = []
        store = {'(': ')', '[': ']', '{':'}'}
        for bracket in s:
            if bracket in store.keys():
                stack.append(bracket)
            elif not stack:
                return False
            elif store[stack.pop()] != bracket:
                return False

        return stack == []

Java版本

class Solution {
    public boolean isValid(String s) {
        Map<Character, Character> store = new HashMap<>();
        store.put('(', ')');
        store.put('{', '}');
        store.put('[', ']');
        Stack<Character> stack = new Stack<>();

        for (char chr : s.toCharArray()) {
            if (store.containsKey(chr)) {
                stack.add(chr);
            } else if (stack.isEmpty()) {
                return false;
            } else if (store.get(stack.pop()) != chr) {
                return false;
            }
        }

        return stack.isEmpty();
    }
}

results matching ""

    No results matching ""