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: trueExample 2:
Input: s = "()[]{}"
Output: trueExample 3:
Input: s = "(]"
Output: falseExample 4:
Input: s = "([)]"
Output: falseExample 5:
Input: s = "{[]}"
Output: trueConstraints:
1 <= s.length <= 104sconsists 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?