/* 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。
* 括号必须依照 "()" 顺序表示, "()[]{}" ,"({}[()])"是有效的括号,但 "([)]"则是无效的括号。
*/
看到这道题很容易想到栈操作,题目很简单不多说
private bool IsValidParentheses(string s)
{
Stack<char> stack=new Stack<char>();
foreach (char c in s)
{
if ("([{".Contains(c.ToString()))
{
stack.Push(c);
}
else
{
if (stack.Count != 0 && IsValid(stack.Peek(), c))
stack.Pop();
else
return false;
}
}
return stack.Count == 0;
}
private bool IsValid(char c1,char c2)
{
return (c1 == '(' && c2 == ')') || (c1 == '[' && c2 == ']') || (c1 == '{' && c2 == '}');
}