我有如下它打印的括號的所有有效組合遞歸函數:遞歸印刷平衡括號
function addParen(upstock, downstock, sa)
{
if (upstock == 0 && downstock == 0)
{
Print(sa);
}
if (upstock > 0)
{
addParen(upstock - 1, downstock + 1, sa + "(");
}
if (downstock > 0)
{
addParen(upstock, downstock - 1, sa + ")");
}
}
它直接打印結果像串「((()))」或「( )()()「對於n = 3(我們假設3對,對數不重要)。但是,我希望我的遞歸函數每當初始空字符串連接一個「(」或「)」時,逐一打印每個圓括號。例如對於第一個組合,我希望它打印爲「(」then「(」then「 (「然後」)「」然後「)」然後「)」,然後它可以以相同的方式進行第二次組合。是否有可能做到這一點?
你想等待用戶輸入嗎?你在問什麼?函數是正確的,或者你想要做什麼是「(」「(」「(」「)」「)」「)」 – Zinov
不,我想要做的是當遞歸進行時,字符串是與左括號或右括號連接,我立即想要將該圓括號放在屏幕上。有了這個功能,我總是把完成的字符串放在屏幕上,只要上料和下料等於零。 –
你如何期望它打印給定前綴的第二個字符串?或者你在尋找一種樹型輸出? – rici