
微信公衆號:
醉前端關注可瞭解更多題目。
題 目
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;
}
每日更新一道算法題,加個關注唄老鐵!