0
点赞
收藏
分享

微信扫一扫

Javascript 判断字符串括号是否匹配

💡基本思路:

  • 利用栈先进后出的属性进行判断
  • 如果是左括号,入栈
  • 如果是右括号,如果与栈顶元素匹配栈顶弹栈,循环继续,如果不匹配,直接返回false
  • 最后栈中为空,匹配,栈不为空,不匹配

🙋流程图

在这里插入图片描述

​👏代码

/**
 * 判断是否括号匹配
 * @param str str
 */
export function matchBracket(str: string): boolean {
    const length = str.length
    if (length === 0) return true

    const stack = []

    const leftSymbols = '{[('
    const rightSymbols = '}])'

    const match = {
        "}": "{",
        ")": "(",
        "]": "["
    }

    for (let i = 0; i < length; i++) {
        const s = str[i]

        if (leftSymbols.includes(s)) {
            // 左括号,压栈
            stack.push(s)
        } else if (rightSymbols.includes(s)) {
            // 右括号,判断栈顶(是否出栈)
            const top = stack[stack.length - 1]
            // @ts-ignore
            if (match[s]===top) {
                stack.pop()
            } else {
                return false
            }
        }
    }

    return stack.length === 0
}

🎯总结

  • 今天接触到了一个画流程图的网站还,叫Processon,里面有流程图、UML、思维导图都是我平常要用到的,关键是还免费,在这里推荐一下

点击这里去作图吧!!!

  • 获取字符串的某一位直接用数组下标就行了
举报

相关推荐

0 条评论