摘要:給出代表生成括號(hào)的對(duì)數(shù),請(qǐng)你寫出一個(gè)函數(shù),使其能夠生成所有可能的并且有效的括號(hào)組合。
給出 n 代表生成括號(hào)的對(duì)數(shù),請(qǐng)你寫出一個(gè)函數(shù),使其能夠生成所有可能的并且有效的括號(hào)組合。
例如,給出 n = 3,生成結(jié)果為:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
答案參考:
/** * @param {number} n * @return {string[]} */ var generateParenthesis = function(n) { if (n == 1) { return ["()"]; } let maxCombo = []; maxCombo[0] = 0; for (let i = 1; i < n * 2; i++) { if (i > n + 1) { maxCombo[i] = 0; } else { maxCombo[i] = 1; } } let maxComboCount = parseInt(maxCombo.join(""), 2); let leastComboCount = parseInt(Array(n).fill(1).join(""), 2); let results = []; for (let i = leastComboCount; i < maxComboCount; i++) { let binary = i.toString(2); let balancer_0 = n * 2 - binary.length; let balancer_1 = 0; let cont = false; let result = ""; for (let j = 0; j < balancer_0; j++) { result += "("; } for (let j = 0; j < binary.length; j++) { if (binary[j] == "0") { balancer_0 += 1; result += "("; } else { balancer_1 += 1; result += ")"; } if (balancer_1 > balancer_0) { cont = true; break; } } if (cont || balancer_0 != balancer_1) { continue; } results.push(result); } return results; };
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101773.html
摘要:代碼不過這一題標(biāo)準(zhǔn)的解法是回溯法?;厮莘ㄔ谏扇倪^程中進(jìn)行剪枝,使得效率最大。并且不需要判重,因?yàn)榛厮菥褪且淮涡陨扇圆粫?huì)重復(fù)。 題目地址:https://leetcode-cn.com/probl...題目描述:給出 n 代表生成括號(hào)的對(duì)數(shù),請(qǐng)你寫出一個(gè)函數(shù),使其能夠生成所有可能的并且有效的括號(hào)組合。 例如,給出 n = 3,生成結(jié)果為: [ ((())), (()(...
摘要:當(dāng)右括號(hào)和左括號(hào)的剩余量均為時(shí),及為一個(gè)最終結(jié)果。而則會(huì)在直接原來的對(duì)象上進(jìn)行修改,其指針仍然指向原來的對(duì)象。因此在遞歸的過程中使用一定要注意,對(duì)對(duì)象的修改不要相互干擾。 題目要求 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses....
摘要:復(fù)雜度思路注意的地方,要限制左括號(hào)和右括號(hào)。每出現(xiàn)一次左括號(hào),就相對(duì)于限定了,最多只能出現(xiàn)那么多右括號(hào)。所以,為了完成這種限定,用來控制。不然會(huì)有的情況出現(xiàn)。 LeetCode[22] Generate Parentheses Given n pairs of parentheses, write a function to generate all combinations of ...
摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說說你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...
摘要:要求返回一個(gè)中包含組括號(hào)所有可能的符合規(guī)則的組合。例如輸入結(jié)果集應(yīng)當(dāng)是想法輸入的就代表著我們的字符串的組成是個(gè)和個(gè)。我們需要跟蹤和的使用情況,來判斷下一步的操作是否合法。 題目詳情 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses....
閱讀 3399·2023-04-25 14:07
閱讀 3471·2021-09-28 09:35
閱讀 2100·2019-08-30 15:55
閱讀 1417·2019-08-30 13:48
閱讀 2511·2019-08-30 13:16
閱讀 3211·2019-08-30 12:54
閱讀 3242·2019-08-30 11:19
閱讀 1885·2019-08-29 17:17