Valid Parentheses
Problem
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.
Solution Approach
Expected Time complexity:
Click - to see solution code
- C++
class Solution {
public:
bool isValid(string s) {
stack<char> st;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
st.push(s[i]);
else {
if (s[i] == '}' && st.size() && st.top() == '{') {
st.pop();
} else if (s[i] == ']' && st.size() && st.top() == '[') {
st.pop();
} else if (s[i] == ')' && st.size() && st.top() == '(') {
st.pop();
} else {
return false;
}
}
}
if (st.size()) return false;
return true;
}
};