a7014eb675a3369a326096882488e354d0bdd457.jpg

微信公众号:醉前端关注可了解更多题目。

题 目

Q: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:
左括号必须用相同类型的右括号闭合;左括号必须以正确的顺序闭合;注意空字符串可被认为是有效字符串。
  • 示例1:
    输入: "()",输出: true
  • 示例2:
    输入: "()[]{}",输出: true
  • 示例3:
    输入: "(]",输出: false
  • 示例4:
    输入: "([)]",输出: false
  • 示例5:
    输入: "{[]}",输出: true

答 案

const isValid = s => {
   let valid = true;
    const stack = [];
    const mapper = {
        '{': "}",
        "[": "]",
        "(": ")"
    }
    for(let i in s) {
        const v = s[i];
        if (['(', '[', '{'].indexOf(v) > -1) {
            stack.push(v);
        } else {
            const peak = stack.pop();
            if (v !== mapper[peak]) {
                return false;
            }
        }
    }
    if (stack.length > 0) return false;
    return valid;
}
每日更新一道算法题,加个关注呗老铁!
每日更新一道算法题,加个关注呗老铁!

醉前端
174 声望83 粉丝

Time is a bird forever on the ring......