Valid Parentheses

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. Note that an empty string is also considered valid.

Solution: Using Stack

Remember to check for empty stack when back parenthesis appears

    bool isValid(string s) {
        stack<char> mStack;
        unordered_map<char, char> table = {{')', '('}, {']', '['}, {'}', '{'}};

        for (auto ch: s) {
            if (ch == '(' || ch == '{' || ch == '[') {
                mStack.push(ch);
            } else if (mStack.empty() || mStack.top() != table[ch]) {
                return false;
            } else {
                mStack.pop();
            }
        }
        return mStack.empty();
    }

results matching ""

    No results matching ""