zoukankan      html  css  js  c++  java
  • 力扣----4. 有效的括号(JavaScript, Java实现)

    题目描述:

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

    有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

    示例 1:

      输入: "()"
      输出: true
    示例 2:

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

      输入: "(]"
      输出: false
    示例 4:

      输入: "([)]"
      输出: false
    示例 5:

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

    JavaScript实现:

    /**
     * @param {string} s
     * @return {boolean}
     */
    const isValid = function (s) {
      let res = [];
      for (let i = 0; i < s.length; i++) {
        let letter = s.charAt(i);
        switch (letter) {
          case "(" : {res.push(letter);break;}
          case "{" : {res.push(letter);break;}
          case "[" : {res.push(letter);break;}
          case "]" : {
            if(res.pop() !== "["){
              return false;
            }
            break;
          }
          case "}" : {
            if(res.pop() !== "{"){
              return false;
            }
            break;
          }
          case ")" : {
            if(res.pop() !== "("){
              return false;
            }
            break;
          }
        }
      }
      return !res.length
    };
    var isValid = function(s) {
        let map = {
            '{': '}',
            '(': ')',
            '[': ']'
        }
        let stack = []
        for(let i = 0; i < s.length ; i++) {
            if(map[s[i]]) {
                stack.push(s[i])
            } else if(s[i] !== map[stack.pop()]){
                return false
            }
        }
        return stack.length === 0
    };
    var isValid = function (s) {
        while (s.length) {
            var temp = s;
            s = s.replace('()', '');
            s = s.replace('[]', '');
            s = s.replace('{}', '');
            if (s == temp) return false
        }
        return true;
    };

    Java实现:

    待补充

  • 相关阅读:
    Extension Methods (C# Programming Guide)
    ArraySegment
    git config
    0.0.0.0 IPAddress.Any 【】127.0.0.1 IPAddress.Loopback 【】localhost
    public static float CompareExchange(ref float location1,float value,float comparand)
    ConcurrentDictionary中的 TryRemove
    enum类型
    Array.Copy vs Buffer.BlockCopy
    伴随待字闺中的生命周期分析
    Twitter实时搜索系统EarlyBird
  • 原文地址:https://www.cnblogs.com/manru75/p/13045662.html
Copyright © 2011-2022 走看看