美文网首页
20. 有效的括号

20. 有效的括号

作者: 叫我颜先生 | 来源:发表于2020-05-25 23:11 被阅读0次

    描述:

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

    有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。

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

    示例:

    输入: "()"
    输出: true
    
    输入: "()[]{}"
    输出: true
    
    输入: "(]"
    输出: false
    
    输入: "([)]"
    输出: false
    
    输入: "{[]}"
    输出: true
    

    想法:

    字典存对应关系,栈来进行存取判断

    public static bool IsValid(string s)
    {
        Dictionary<char, char> dic = new Dictionary<char, char>();
        dic.Add('(',')');
        dic.Add('[', ']');
        dic.Add('{', '}');
    
        Stack<char> stack = new Stack<char>();
    
        for (int i = 0; i < s.Length; i++)
        {
            if (dic.ContainsKey(s[i]))
                stack.Push(dic[s[i]]);
            else
            {
                if (stack.Count==0 || stack.Peek() != s[i])
                    return false;
                else
                    stack.Pop();
            }
        }
    
        return stack.Count == 0;
    }
    

    相关文章

      网友评论

          本文标题:20. 有效的括号

          本文链接:https://www.haomeiwen.com/subject/uerpahtx.html