多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > [LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)

[LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)

來源:程序員人生   發布時間:2015-03-14 09:07:50 閱讀次數:4067次

索引:[LeetCode] Leetcode 題解索引 (C++/Java/Python/Sql)
Github: https://github.com/illuz/leetcode


022.Generate_Parentheses (Medium)

鏈接

題目:https://oj.leetcode.com/problems/generate-parentheses/
代碼(github):https://github.com/illuz/leetcode

題意

產生有 n 對括號的所有有效字符串。

分析

  1. 用 DFS 可以很快做出來,能加’(‘就加’(‘,能加’)’就加’)’。(下面的 C++ 實現)
  2. 還有很機靈方法寫出很短的 DFS 。 (Java 實現)
  3. 對 DFS 都可以進行記憶化,用空間換時間。 (Python 實現)

代碼

C++:

class Solution { private: string tmp; void dfs(vector<string> &v, int pos, int n, int used) { if (pos == n * 2) { cout << tmp << endl; v.push_back(tmp); return; } if (used < n) { tmp.push_back('('); dfs(v, pos + 1, n, used + 1); tmp.pop_back(); } if (used * 2 > pos) { tmp.push_back(')'); dfs(v, pos + 1, n, used); tmp.pop_back(); } } public: vector<string> generateParenthesis(int n) { vector<string> res; if (n == 0) return res; tmp = ""; dfs(res, 0, n, 0); return res; } };


Java:

public class Solution { public List<String> generateParenthesis(int n) { List<String> ret = new ArrayList<String>(), inner, outter; if (n == 0) { ret.add(""); return ret; } if (n == 1) { ret.add("()"); return ret; } for (int i = 0; i < n; ++i) { inner = generateParenthesis(i); outter = generateParenthesis(n - i - 1); for (int j = 0; j < inner.size(); ++j) { for (int k = 0; k < outter.size(); ++k) { ret.add("(" + inner.get(j) + ")" + outter.get(k)); } } } return ret; } }


Python:

class Solution: # @param an integer # @return a list of string def generateParenthesis(self, n): dp = {0: [""], 1: ["()"]} def memorial_dfs(n): if n not in dp: dp[n] = [] for i in range(n): for inner in memorial_dfs(i): for outter in memorial_dfs(n - i - 1): dp[n].append('(' + inner + ')' + outter) return dp[n] return memorial_dfs(n)


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美图片另类小说综合 | 免费自拍偷拍视频 | 高清欧美一区二区免费影视 | 亚洲视频精选 | 最近中文字幕免费大全8高清 | 国产午夜人做人免费视频中文 | 亚洲www网站 | 亚洲一本之道在线观看不卡 | 五月天伊人 | 日本综合视频 | 2022亚洲在线免费视频 | 毛片com| 日韩国产欧美精品综合二区 | 国产成人精品日本亚洲18图 | 精品久久久久久久一区二区伦理 | 午夜性色福利影院 | 一区二区三区四区 | 亚洲成人三级 | 小说区图片区综合视频区 | 国产精品自拍一区 | 中文字幕第3页 | 2015日韩永久免费视频播放 | 国产基zz视频日本在线观看 | 久久性 | 午夜老司机免费视频 | 国产精品亚洲欧美日韩区 | 日本免费一二区视频 | 国产成人一区二区三中文 | 欧美成人午夜在线全部免费 | 亚洲 欧美 日韩 综合 | 最新中文字幕在线观看 | 91久久另类重口变态 | 俺去啦婷婷 | 亚洲成人偷拍 | 国产成人免费片在线视频观看 | 亚洲乱码一二三四区国产 | 欧美草逼网 | 日本一区二区三区四区在线观看 | 亚洲精品老司机 | 国产乱码一区二区三区四 | 欧美黑人两根巨大挤入 |