有效的括号
题目如下
代码如下
public class Solution
{
public bool IsValid(string s)
{
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.Pop()!='(')
return false;
}
else if(i==']')
{
if(stack.Pop()!='[')
return false;
}
else if(i=='}')
{
if(stack.Pop()!='{')
return false;
}
}
return stack.Count==0;
}}
解题思路
若为括号左侧就入栈,若遇到括号右侧,则与栈顶元素做对比,若左右不能配对则返回false.