void generate( int n_match, int sum, vector<string>& v ) { if( n_match < sum ) { vector<string> v1 = v; vector<string> v2 = v; v.clear(); for( int i=0; i<v1.size();i++ ) v1[i] = v1[i] + "("; generate( n_match+1, sum, v1 ) ; for( int i=0; i<v1.size();i++ ) v.push_back( v1[i] ); if( n_match > 0 ) { for( int i=0; i<v2.size();i++ ) v2[i] = v2[i] + ")"; generate( n_match - 1, sum-1, v2 ) ; for( int i=0; i<v2.size();i++ ) v.push_back( v2[i] ); } return ; } if( n_match == sum ) { for( int i=0;i<v.size(); ++i ) { for( int j=0; j< sum; j++ ) v[i] = v[i] + ")"; } return ; } } vector<string> generateParenthesis(int n) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<string> v; if( n == 0 ) return v; string s = ""; v.push_back(s); generate( 0, n, v ); return v; }
原文链接: https://www.cnblogs.com/jumpinGGrass/p/3169914.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/94460
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!