20 - Valid Parentheses

 JAVA

  • class Solution {
        public boolean isValid(String s) {
            Deque<Character> stk = new ArrayDeque<>();
            for (char c : s.toCharArray()) {
                if (c == '(' || c == '{' || c == '[') {
                    stk.push(c);
                } else if (stk.isEmpty() || !match(stk.pop(), c)) {
                    return false;
                }
            }
            return stk.isEmpty();
        }
    
        private boolean match(char l, char r) {
            return (l == '(' && r == ')') || (l == '{' && r == '}') || (l == '[' && r == ']');
        }
    }

C++

  • class Solution {
    public:
        bool isValid(string s) {
            string stk;
            for (char c : s) {
                if (c == '(' || c == '{' || c == '[')
                    stk.push_back(c);
                else if (stk.empty() || !match(stk.back(), c))
                    return false;
                else
                    stk.pop_back();
            }
            return stk.empty();
        }
    
        bool match(char l, char r) {
            return (l == '(' && r == ')') || (l == '[' && r == ']') || (l == '{' && r == '}');
        }
    };

Comments