题目
解题
1.用peek获取栈顶元素并判断是否能与当下的后括号配对,如果可以用pop删除,否的话就用push推到栈顶去。
2.遍历后判断栈的长度,如果为0的话就返回true,否则返回false.
if(s.Length==0) return true;
if(s.Length%2==1) return false;
if(s[0]==')'||s[0]==']'||s[0]=='}') return false;
Stack<char> stack=new Stack<char>();
foreach(var i in s)
{
if(i=='('||i=='['||i=='{')
stack.Push(i);
else if(i==')')
{
if(stack.Peek()=='(')
stack.Pop();
else stack.Push(i);
}
else if(i==']')
{
if(stack.Peek()=='[')
stack.Pop();
else stack.Push(i);
}
else if(i=='}')
{
if(stack.Peek()=='{')
stack.Pop();
else stack.Push(i);
}
}
return stack.Count==0;