题目:
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例:
输入: "()"
输出: true
输入: "()[]{}"
输出: true
输入: "([)]"
输出: false
思路:
1、如果字符串的长度是奇数,显然不是有效字符串,直接返回false
2、如果是偶数,那么就一直循环把所有的括号都替换成空字符串,如果最后是空字符串,那么是有效字符串,返回true,否则返回false
代码实现:
/**
* @param {string} s
* @return {boolean}
*/
const isValid = function (s) {
const length = s.length;
if (length % 2 == 1) {
return false;
}
while(s.includes('()')||s.includes('[]')||s.includes('{}')){
s = s.replace(/\(\)|\[\]|\{\}/g,'')
}
if(s == ""){
return true
}
return false
};