Geração de colchetes [média] - recursão

Descrição do título:

Dado que  n  representa o logaritmo dos parênteses gerados, escreva uma função que permita gerar todas as combinações possíveis e eficazes de parênteses.

Por exemplo, dado  =  3, o resultado é:

Minha solução:

1. Sinto que não consigo esquecer a pergunta sobre o número de telefone. Sempre quero usar a fila. Esta pergunta está escrita na fila e o tempo excede o limite. . .

2. Esta questão parece ser mais adequada para recursão

class Solution {
public:
    vector<string> generateParenthesis(int n) {
        vector<string> res;
        dfs(res,"",n,n);
        return res;
    }
    void dfs(vector<string>& res,string s,int a,int b){//ab分别代表还需要的左右括号数目
        if(a==0&&b==0){
            res.push_back(s);
            return;
        }
        if(a>b) return;
        if(a>0) dfs(res,s+'(',a-1,b);
        if(b>0) dfs(res,s+')',a,b-1);
        return;
    }
};

66 artigos originais publicados · Gosto1 · Visitas 506

Acho que você gosta

Origin blog.csdn.net/qq_41041762/article/details/105151645
Recomendado
Clasificación