求star

开源不易,喜欢请点个star吧

Ocean Han
251 字
1 分钟
Leetcode->有效的括号
2022-04-01

题目#

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

有效字符串需满足:

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

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses

示例1:#

输入:s = ”()” 输出:true

示例2:#

输入:s = ”([)]” 输出:false

解题#

1. 栈#

:::tip 思路

利用栈对给定字符串进行“消除”,如果匹配成功则出栈,最后只需要判断栈是和否为空

:::

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
    const stack = [];
    for (let i = 0; i < s.length; i++) {
        if (['(', '{', '['].includes(s[i])) {
            stack.unshift(s[i]);
        } else if (['()', '{}', '[]'].includes(stack[0] + s[i])) {
            stack.shift();
        } else {
            return false;
        }
    }
    return stack.length == 0;
};

2. replace()替换#

TIP

使用replace()替换给定字符串中的所有括号,最后判断字符串的长度即可

::;

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let length  = s.length / 2
    for(let i=0;i<length;i++) {
        s= s.replace('()','').replace('[]','').replace('{}','')
    }
    return s.length == 0
};
Leetcode->有效的括号
https://blog.oceanh.top/posts/algorithm/有效的括号/
作者
Ocean Han
发布于
2022-04-01
许可协议
CC BY-NC-SA 4.0
最后修改时间
2024-08-10 10:08:49