有效括号.

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

其中有效字符串需满足:

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

思路:

1、判断字符串的长度,奇数直接返回 false

2、循环遍历字符串,通过map来判断是左括号还是右括号,

3、把左侧的括号 push 到一个 stk数组 中

4、如果是右侧括号,通过map来找出左侧号并和 stk数组 最后一项进行全等判断

5、不等返回false,全等则说明当前配对成功,则把 stk数组 中最后一项删除,依次比对

6、最后返回 stk数组 的长度,如果 stk数组length存在,则说明有为配对成功的,返回fasle,否则返回true

扫描二维码关注公众号,回复: 14025887 查看本文章
var isValid = function (s) {
    const m = new Map([
        [')', '('],
        ['}', '{'],
        [']', '[']
    ])
    const leftArr = []

    for (const item of s) {
        if (m.has(item)) {
            // 右侧
            if (!leftArr.length || m.get(item) !== leftArr[leftArr.length - 1]) {
                return false
            }
            leftArr.pop()

        } else {
            // 左侧
            leftArr.push(item)
        }
    }
    return !leftArr.length
};

猜你喜欢

转载自blog.csdn.net/m0_56274171/article/details/124017514