• 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;
        }
    }
    
  • 相关阅读:
    装备购买 线性基+贪心
    花园 状压DP+矩阵快速幂
    数学作业 递推+矩阵快速幂
    石头游戏 构造+矩阵快速幂
    sumdiv 算术基本定理的推论
    huffman
    Integer 类型比较大小
    java 中的 String 相加
    Java 中的 static 关键字
    JAVA 基础
  • 原文地址:https://www.cnblogs.com/fuxuyang/p/14244524.html
Copyright © 2020-2023  润新知