首页 > 其他 > 详细

[leetCode]Generate Parentheses

时间:2014-04-08 22:31:22      阅读:263      评论:0      收藏:0      [点我收藏+]

思路:每次插入一对括号,注意对于之前出现过的字符串就不要在处理了,否则会TLE.

bubuko.com,布布扣
 1  1 #include <string>
 2  2 #include <vector>
 3  3 #include <set>
 4  4 using namespace std;
 5  5 class Solution {
 6  6 public:
 7  7     set<string> strset; 
 8  8     vector<string> generateParenthesis(int n) {
 9  9         string s = "";
10 10         vector<string> ret;
11 11         if(n <= 0) return ret;
12 12         generate(n,s,0,ret);
13 13         return ret;
14 14     }
15 15     void generate(int n, string s, int index, vector<string> &ret){
16 16         s.insert(index,"()");
17 17         if(strset.find(s) != strset.end()) return;// get TLE without this sentence;
18 18         strset.insert(s);
19 19         if(n <= 1){
20 20             ret.push_back(s);    
21 21         }else{
22 22             for(int i = 0; i < s.length(); i++){
23 23                 generate(n-1,s,i,ret);
24 24             }
25 25         }
26 26     }
27 27 };
bubuko.com,布布扣

 

 

[leetCode]Generate Parentheses,布布扣,bubuko.com

[leetCode]Generate Parentheses

原文:http://www.cnblogs.com/marylins/p/3652829.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!