JS算法題之每日一題-8.有效的括號

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;
}
每日更新一道算法題,加個關注唄老鐵!
每日更新一道算法題,加個關注唄老鐵!
相關文章
相關標籤/搜索