给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
var isValid = function(s) {
let arr = []
for (let i = 0; i < s.length; i++) {
const char = s[i]
if (char === '(' || char === '{' || char === '[') {
arr.push(char)
continue
}
switch (char) {
case ')':
if (arr[arr.length - 1] !== '(') {
return false
}
arr.pop()
break
case '}':
if (arr[arr.length - 1] !== '{') {
return false
}
arr.pop()
break
case ']':
if (arr[arr.length - 1] !== '[') {
return false
}
arr.pop()
break
}
}
//栈不为空说明不成对
return arr.length === 0 ? true : false
}
var isValid = function (s) {
let match = {
'{': '}',
'[': ']',
'(': ')',
}
let left = []
for (let i = 0; i < s.length; i++) {
const char = s[i]
if (char === '(' || char === '{' || char === '[') {
left.push(char)
} else {
if (match[left[left.length - 1]] !== char) {
return false
}
left.pop()
}
}
return left.length ? false : true
}
var isValid = function (s) {
while (s.includes('()') || s.includes('{}') || s.includes('[]')) {
s = s.replace('()', '')
s = s.replace('[]', '')
s = s.replace('{}', '')
}
return s === ''
}