标签:
也许是因为简单,这次的思路很清晰。
class Solution { private: vector<string> res; string str; int left=0; int right=0; public: bool isValid(const char Par,int Pnum) { if(Par==‘(‘) { if(left<Pnum) return true; else return false; } else { if(right<left) return true; else return false; } /* if(left<Pnum&&right<left) return true; else return false; */ } void getSolution(int flag,int Pnum) { if(flag==2*Pnum) { res.push_back(str); return; } if(isValid(‘(‘,Pnum)) { str.append("("); left++; getSolution(flag+1,Pnum); str.pop_back(); left--; } if(isValid(‘)‘,Pnum)) { str.append(")"); right++; getSolution(flag+1,Pnum); str.pop_back(); right--; } } vector<string> generateParenthesis(int n) { getSolution(0,n); return res; } };
标签:
原文地址:http://www.cnblogs.com/qiaozhoulin/p/4523458.html