2025年5月28日 星期三

22. Generate Parentheses

 22. Generate Parentheses

難度: Medium
類型: String, Dynamic Programming, Backtracking
CPP程式下載: 22.cpp

前情題要:
列出所有N 個括弧的可能組合












思考方式:
1. 利用 Set 的唯一性, 我們就不避自己實作比對的程式。把所有可能的組合往裡面丟就好。
2. 給一組括弧當開始。
    兩組括弧就是在字串最左邊加上"()", 找到第一個"("之後加上"()", 最後在字串最右邊加上"()‧‧。
    三組括弧就是在字串最左邊加上"()", 找到第一個"("之後加上"()", 找到第二個"("之後加上"()", 最後在字串最右邊加上"()‧‧。
    後面以此類推
3. 最後記得把Set的每個 string, 都存到 vector <string> 中。

複雜度思考:

Time Complexity: O( N+(N-1)+....+2 ) 

Space Complexity: O( x )

結果:

Runtime: 3 ms, Beats: 71.36%

Memory: 11.29 MB, Beats: 96.48%