# Valid Parentheses LeetCode Solution

·1 min
leetcode
Author
Mayukh Datta

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

An input string is valid if:

1. Open brackets must be closed by the same type of brackets.
2. Open brackets must be closed in the correct order.

Example 1:

Input: s = “()” Output: true

Example 2:

Input: s = “()[]{}” Output: true

Example 3:

Input: s = “(]” Output: false

Example 4:

Input: s = “([)]” Output: false

Example 5:

Input: s = “{[]}” Output: true

Constraints:

• `1 <= s.length <= 104`
• `s` consists of parentheses only `'()[]{}'`.

## Solution using stack #

class Solution { public: bool isValid(string s) { stack st;

``````    // using stack to solve this problem helps us to respect the relative placement of brackets

for(int i=0;i<s.length();i++) {
char top = st.empty() ? '#' : st.top();

if(top == '(' && s\[i\] == ')') {
st.pop();
}else if(top == '{' && s\[i\] == '}') {
st.pop();
}else if(top == '\[' && s\[i\] == '\]') {
st.pop();
}else{
st.push(s\[i\]);
}
}

return st.empty();
}
``````

};