您的位置:首页 > 其它

[leetCode]Generate Parentheses

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

1 #include <string>
2 #include <vector>
3 #include <set>
4 using namespace std;
5 class Solution {
6 public:
7     set<string> strset;
8     vector<string> generateParenthesis(int n) {
9         string s = "";
10         vector<string> ret;
11         if(n <= 0) return ret;
12         generate(n,s,0,ret);
13         return ret;
14     }
15     void generate(int n, string s, int index, vector<string> &ret){
16         s.insert(index,"()");
17         if(strset.find(s) != strset.end()) return;// get TLE without this sentence;
18         strset.insert(s);
19         if(n <= 1){
20             ret.push_back(s);
21         }else{
22             for(int i = 0; i < s.length(); i++){
23                 generate(n-1,s,i,ret);
24             }
25         }
26     }
27 };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: