括号生成

it2024-08-17  47

准备阶段1–判断括号字符串是否正确闭合

<script> function isRight(arr) { let result = []; for (let i = 0; i < arr.length; i++) { let stack = []; let str = arr[i]; for (let k = 0; k < str.length; k++) { if (stack.length) { if (stack[stack.length - 1] === '(' && str[k] === ')') { stack.pop(); } else { stack.push(str[k]); } } else { stack.push(str[k]); } } if (!stack.length) { result.push(arr[i]); } } // return Array.from(new Set(result)); return result; } let arr = ['(())','((((', ')(()','()()', '()()()','((()))', '()(())', '(())()', ')()(']; console.log(isRight(arr)); </script>

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

/** * n = 3 [ "((()))", "(()())", "(())()", "()(())", "()()()" ] **/
最新回复(0)