有效的括號——LeetCode刷題系列

給定一個只包括 '('')''{''}''['']' 的字符串,判斷字符串是否有效。
有效字符串需滿足:
1.左括號必須用相同類型的右括號閉合。
2.左括號必須以正確的順序閉合。
3.注意空字符串可被認爲是有效字符串。

示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: "{[]}"
輸出: true

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/valid-parentheses
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。 

題解:https://leetcode-cn.com/problems/valid-parentheses/solution/you-xiao-de-gua-hao-by-leetcode/
棧可以遞歸地處理這種問題。

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
    if (s.length % 2) return false;   //排除奇數個以及空字符
    let map = {
        "(": ")",
        "[": "]",
        "{": "}"
    }
    let old = s.split("");
    let now = [];
    while(old.length){
        let left = old.pop();		
        if(map[left]){				//如果left爲前括號 然後判斷前後括號是否匹配
            if(map[left] !== now.pop()) return false;
        }else{						//如果left爲後括號 存到now
            now.push(left);
        }
    }
    return true;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章