時間復雜度 O(n)?空間復雜度 O(n+∣Σ∣),其中?Σ?表示字符集,本題中字符串只包含?6?種括號
/*** @param {string} s* @return {boolean}*/
var isValid = function(s) {const map = {"(":")","{":"}","[":"]"}let arr = []// 如果輸入的數組為奇數時一定不滿足條件if(s.split('').length%2!==0){return false}for(let item of s){// 如果當前括號為左括號,將右括號壓入棧if(map[item]){arr.push(map[item])}else{// 如果當前的括號是右括號,則彈出棧尾的括號是否等于當前的括號// 等于則繼續循環,不等于則括號不匹配if (arr.pop()!== item) {return false;}}}return arr.length === 0
};
?