Generate Parentheses


    題意是要求生成匹配的括號結果。假如給定n = 3,需要生成3對括號的有效組合,即"((()))", "(()())", "(())()", "()(())", "()()()"。

void unguarded_generate(vector<string> &result, string curr, int m, int n)
{
    if (m == 0 && n == 0)
    {
        result.push_back(curr);
    }
    else
    {
        if (m != 0)
        {
            unguarded_generate(result, curr + "(", m - 1, n);
        }
        
        if (m < n && n != 0)
        {
            unguarded_generate(result, curr + ")", m, n - 1);
        }
    }
}
 
vector<string> generateParenthesis(int n) 
{
    vector<string> ret;
    
    if (n > 0)
    {
        unguarded_generate(ret, string(), n, n);
    }
    
    return ret;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM