給定一個(gè)只包括 '('筛峭,')'谓娃,'{','}'蜒滩,'[',']' 的字符串 s 奶稠,判斷字符串是否有效俯艰。
有效字符串需滿足:
左括號(hào)必須用相同類型的右括號(hào)閉合。
左括號(hào)必須以正確的順序閉合锌订。
示例 :
輸入:s = "()"
輸出:true
輸入:s = "()[]{}"
輸出:true
輸入:s = "(]"
輸出:false
輸入:s = "([)]"
輸出:false
輸入:s = "{[]}"
輸出:true
思路 :
- 遇到(, [, { 將對(duì)應(yīng)需要消除的), ], }放入棧中
- 遇到), ], } 不放入棧中并且合法的字符串必然可以和棧頂相等消除
let isValid = function(s) {
let stack = [];
for(let val of s) {
if(val === '(') {
stack.push(')')
}else if(val === '[') {
stack.push(']')
}else if(val === '{') {
stack.push('}')
}else if(stack.length === 0 || val !== stack.pop()) {
return false
}
}
return stack.length === 0;
}
console.log('11111',isValid('{[]}'))
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/valid-parentheses