constisValid = (s) => { while (true) { let len = s.length; // 将字符串按照匹配对,挨个替换为 '' s = s.replace('{}', '').replace('[]', '').replace('()', ''); // 有两种情况 s.length 会等于 len // 1. s 匹配完了,变成了空字符串 // 2. s 无法继续匹配,匹配后的长度和和匹配前的长度一样(比如 "({]",一开始 len 是 3,匹配后还是 3,说明不用继续匹配了) if (s.length === len) { return len === 0; } } };
const s = '{[()]}'; isValid(s);
1 2 3 4 5 6
constisValid = (s) => { while (s.includes('{}') || s.includes('[]') || s.includes('()')) { s = s.replace('{}', '').replace('[]', '').replace('()', ''); } return s.length === 0; };