2020-12-29-有效的括号

image.png
    /**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    if(s.length === 0) return true
    if(s.length === 1) return false
    let obj = {
        '(':')',
        '[': ']',
        '{': '}'
    }
    let stack = []
    let arr = s.split('')
    for(let i = 0; i< arr.length; i++) {
        console.log(arr[i],'arr[i]')
        if(obj[arr[i]]) {
            stack.push(obj[arr[i]])
        }else {
            if(stack.pop() !== arr[i]) {
                console.log(1234,stack.pop(),arr[i])
                return false
            }
        }
    }
    console.log(stack.length)
    return stack.length === 0
};

思路

  • 想出所有不符合的可能性
  • 写一个映射对象 左括号=>右括号
  • 定义一个栈结构
  • 循环字符串,然后如果是左括号入栈,右括号的话与出栈的元素比较,如果不相等return false
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。 有效字符串需满足: ...
    历十九喵喵喵阅读 197评论 0 0
  • 有效的括号 题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 ...
    SunnyQjm阅读 119评论 0 2
  • 1:首先利用hashmap,将三个括号对送入map中,其中左括号作为key,右括号作为value2:遍历字符串的每...
    bangbang2阅读 215评论 0 2
  • 一、问题 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串...
    Djbfifjd阅读 1,601评论 0 2
  • 题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需...
    _涼城阅读 439评论 0 2