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();
}