給定n對括號,編寫一個函式來生成正確括號的所有組合。
阿新 • • 發佈:2019-01-24
本題源自leetcode
-----------------------------------------------------------------------------------------------
思路:
1 用回溯法。用變數m 表示左括號的數量。n表示一共要插入括號的數量。則當m大於0 可以插入右括號。當n 大於 0 可以插入左括號
程式碼:
vector<string> generateParenthesis(int n) { if(n==0) return vector<string>(); vector<string> res; backPath(res,"",n,0); return res; } void backPath(vector<string>& res,string s,int n,int m){ if(n==0&&m==0){ res.push_back(s); return ; } if(n>0) backPath(res,s+"(",n-1,m+1); if(m>0) backPath(res,s+")",n,m-1); }