题目:
用栈来实现
具体代码为:
public class Solution {
public bool IsValid(string s) {
Stack<char> charStack = new Stack<char>();
for(int i = 0; i < s.Length; i ++){
char currentChar = s[i];
if(IsLeft(currentChar)){
charStack.Push(currentChar);
}else if(IsRight(currentChar)){
if(charStack.Count == 0){
return false;
}
var last = charStack.Pop();
if(GetPair(last) != currentChar){
return false;
}
}
}
return charStack.Count == 0;
}
private bool IsLeft(char input){
return input == '(' || input == '{' || input == '[';
}
private bool IsRight(char input){
return input == ')' || input == '}' || input == ']';
}
private char GetPair(char input){
switch(input){
case'(':
return ')';
case'[':
return ']';
case'{':
return '}';
}
return char.MinValue;
}
}
运行结果为: