HOT100——最长有效括号(JS实现)

简介: HOT100——最长有效括号(JS实现)

题目描述

image.png

解题思路

  • 使用辅助栈 + 求连续最长的元素序列。
  • 为什么要使用栈?通过这个辅助栈可以帮助我们更好的定位哪些位置上的字符能够构成有效的括号。
  • 如何求连续最长的元素序列,是通过循环更新最大值的方法来求解的。

解题代码

var longestValidParentheses = function(s) {
    if (s.length === 0) return 0;
    // 创建一个同纬度的数组,用于判断哪些下标组合是有效的括号
    const fillArr = new Array(s.length).fill(0);
    // 辅助栈
    const stack = [];
    for (let i = 0; i < s.length; i++) {
        if (s[i] === '(') {
            stack.push(i);
        } else {
            if (stack.length > 0) {
                fillArr[i] = 1;
                fillArr[stack.pop()]=1
            }
        }
    }
    fillArr
    // 计算最长连续的1
    let count = 0;
    let max = 0;
    for (let v of fillArr) {
        if (v === 1) {
            count++;
            max = max > count ? max : count;
        } else {
            count = 0;
        }
    }
    return max;
};

启示

  • 学会使用辅助栈来解决有效的括号这一类的问题。
  • 学会通过更新最大值的方式来获取最大值。
相关文章
|
4月前
|
JavaScript
js 区分中英文输入法(如中英文括号)
js 区分中英文输入法(如中英文括号)
81 4
|
4月前
|
JavaScript
js 校验括号——括号不可嵌套且需成对出现
js 校验括号——括号不可嵌套且需成对出现
53 2
|
5月前
|
前端开发 JavaScript
JSX 中带有大括号的 JavaScript
JSX 中带有大括号的 JavaScript
|
算法 前端开发
前端学习案例1-js中的平衡括号算法
前端学习案例1-js中的平衡括号算法
80 0
前端学习案例1-js中的平衡括号算法
|
算法 前端开发
前端学习案例1-js中的平衡括号算法
前端学习案例1-js中的平衡括号算法
60 0
前端学习案例1-js中的平衡括号算法
|
JavaScript 算法 前端开发
【前端算法】JS实现数字千分位格式化
JS实现数字千分位格式化的几种思路,以及它们之间的性能比较
342 1
|
存储 前端开发 算法
LeetCode有效的括号使用JavaScript解题|前端学算法
LeetCode有效的括号使用JavaScript解题|前端学算法
186 0
LeetCode有效的括号使用JavaScript解题|前端学算法
|
存储 前端开发 算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
162 0
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
|
存储 机器学习/深度学习 JavaScript
JS 你最少用几行代码实现深拷贝?
JS 你最少用几行代码实现深拷贝?
JS 你最少用几行代码实现深拷贝?
|
JavaScript
js 正则表达式获取括号里面的内容
js 正则表达式获取括号里面的内容
js 正则表达式获取括号里面的内容