• LeetCode_20.有效的括号


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

    有效字符串需满足:

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

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

    示例 1:

    输入: "()"
    输出: true
    

    示例 2:

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

    示例 3:

    输入: "(]"
    输出: false
    

    示例 4:

    输入: "([)]"
    输出: false
    

    示例 5:

    输入: "{[]}"
    输出: true

    C#代码

    public class Solution {
        public bool IsValid(string s) {
            List<char> list1 = new List<char>() { '[', '{', '(' };
            List<char> list2 = new List<char>() { ']', '}', ')' };
            Stack<char> stack = new Stack<char>();
            for (int i = 0; i < s.Length; i++)
            {
                if (list1.Contains(s[i]))
                    stack.Push(s[i]);
    
                if (list2.Contains(s[i]))
                {
                    if (stack.Count == 0)
                        return false;
                    
                    stack.TryPeek(out char str);
    
                    if ((str == '(' && s[i] != ')') || (str == '[' && s[i] != ']') || (str == '{' && s[i] != '}'))
                        return false;
                    
                    stack.TryPop(out char str1);
                }
            }
            return stack.Count == 0;
        }
    }
    
  • 相关阅读:
    今发现“最全前端资源汇集”,果断收藏
    js基础
    重排版与重绘
    小乌龟的配置
    考试网站
    苹果手机上时间的兼容
    自定义alert
    [概率dp] 流浪地球
    [权值线段树] 1163B2 Cat Party (Hard Edition)
    [单调栈]1156E Special Segments of Permutation
  • 原文地址:https://www.cnblogs.com/fuxuyang/p/14244524.html
Copyright © 2020-2023  润新知