首页 > 代码库 > LeetCode "Generate Parentheses"
LeetCode "Generate Parentheses"
DFS and using stack to validate candidates.
class Solution {public: bool isValid(const string &s) { stack<char> stk; for (int i = 0; i < s.length(); i++) { switch (s[i]) { case ‘(‘: stk.push(‘(‘); break; case ‘)‘ : if (!stk.empty()) { if (stk.top() == ‘(‘) { stk.pop(); continue; } } return false; break; } } return stk.empty(); } void go(string s, int n, vector<string> &ret) { if (s.length() == n * 2 ) { if (isValid(s)) ret.push_back(s); return; } go(s + "(", n, ret); go(s + ")", n, ret); } vector<string> generateParenthesis(int n) { vector<string> rec; go("(", n, rec); return rec; }};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。