20. Valid Parentheses
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.
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'()[]{}'
.
public class Solution {
public bool IsValid(string s) {
if(s == ""){
return true;
}
var s_array = s.ToCharArray();
if(s_array.Length % 2 != 0){
return false;
}
var stack = new Stack<char>();
foreach(char c in s_array){
if(c == '(' || c == '{' || c == '['){
stack.Push(c);
}
else{
if(c == ')' && (stack.Count == 0 || stack.Pop() != '(')){
return false;
}
else if(c == '}' && (stack.Count == 0 || stack.Pop() != '{')){
return false;
}
else if(c == ']' && (stack.Count == 0 || stack.Pop() != '[')){
return false;
}
}
}
return stack.Count == 0 ? true : false;
}
}
Last updated
Was this helpful?