题目介绍
思路
运用栈
1.如果是空,返回true
2.如果栈第一个输入右括号,则返回false
3.如果栈长为奇数,则返回false
4.如果是左括号,则放入栈,在匹配如果配对,则接着输入,如果不配对,则返回false
代码及其实验结果
public class Solution {
public bool IsValid(string s) {
Stack<Char> stack = new Stack<Char>();
if (s.Length == 0)
return true;
if(s[0] == ')' || s[0] == '}' || s[0] == ']')
return false;
if (s.Length % 2 == 1)
return false;
foreach(var i in s)
{
if (i == '(' || i == '{' || i == '[')
{
stack.Push(i);
}
else if(i==')')
{
if (stack.Pop() != '(')
return false;
}
else if (i == '}')
{
if (stack.Pop() != '{')
return false;
}
else if (i == ']')
{
if (stack.Pop() != '[')
return false;
}
}
return stack.Count == 0;
}
}