Given a string s 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.
Every close bracket has a corresponding open bracket of the same type.
Input: s = "()"
Output: true
Input: s = "()[]{}"
Output: true
Input: s = "(]"
Output: false
class Solution
{
public:
bool isValid(string s)
{
stack<char> st;
for (char e : s)
{
if (e == '{' || e == '[' || e == '(')
st.push(e);
else
{
if (st.empty())
return false;
else if (st.top() == '(' && e == ')' || st.top() == '{' && e == '}' || st.top() == '[' && e == ']'){
st.pop();
}
else
return false;
}
}
return st.empty();
}
};