Leecode[20] 有效的括号

2020-10-11  本文已影响0人  饭板板

题目

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

代码

       public static bool Method(string s)
        {
            var dics = new Dictionary<char, char>
            {
                { '(', ')' },
                { '{', '}' },
                { '[', ']' }
            };

            var chars = s.ToCharArray();
            if (chars.Length == 0)
            {
                return true;
            }

            Stack<char> stack = new Stack<char>();

            foreach (var item in chars)
            {
                if (dics.ContainsKey(item))
                {
                    stack.Push(item);
                }
                else
                {
                    // 注意:判断栈是否有元素
                    if (stack.Count == 0 || dics[stack.Pop()] != item)
                    {
                        return false;
                    }
                }
            }

            // 注意:栈中不能含有元素
            return stack.Count == 0;
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读