给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例:
输入: "()"
输出: true
示例 1:
输入: "()[]{}"
输出: true
示例 2:
输入: "([)]"
输出: false
示例 3:
输入: "{[]}"
输出: true
使用这个方法, 语义上很好理解, 不过时间复杂度就很高了,不推荐
/*
* @lc app=leetcode.cn id=20 lang=javascript
*
* [20] 有效的括号
*/
// @lc code=start
/**
* @param {string} s '{[()]'
* @return {boolean}
*/
var isValid = function (s) {
const bracket = {
'(': ')',
'{': '}',
'[': ']',
}
let stack = []
for (let i = 0; i < s.length; i++) {
if(bracket[s[i]]) {
stack.push(bracket[s[i]])
} else {
if(s[i] !== stack.pop()) return false
}
}
return !stack.length
}
leetCode链接:
大家如果还有好的算法,可以在评论区沟通哟~ 🤨🤨
因篇幅问题不能全部显示,请点此查看更多更全内容