面试题 08.09:括号

简介: 面试题 08.09:括号

题目

题目链接

括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。

说明:解集不能包含重复的子集

例如,给出 n = 3,生成结果为:

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]

解题

方法一:回溯

用left,right两个变量去控制,左括号和右括号数

if(c=='(') backtracing(n,left+1,right);保证左括号的优先。

class Solution {
public:
    vector<char> sign={'(',')'};
    string path;
    vector<string> res;
    void backtracing(int n,int left,int right){
        if(left>n||right>n||left<right) return;
        if(left==n&&right==n){
            res.push_back(path);
            return;
        }
        for(char c:sign){
            path.push_back(c);
            if(c=='(') backtracing(n,left+1,right);//优先左括号
            else backtracing(n,left,right+1);
            path.pop_back();
        }
    }
    vector<string> generateParenthesis(int n) {
        backtracing(n,0,0);
        return res;
    }
};
相关文章
|
7月前
|
存储 算法 编译器
米哈游面试算法题:有效的括号
米哈游面试算法题:有效的括号
86 0
|
存储
【栈与队列面试题】有效的括号(动图演示)
【栈与队列面试题】有效的括号(动图演示)
|
4月前
|
存储 算法 索引
【面试题】最长有效括号
【面试题】最长有效括号
50 0
【牛客面试必刷TOP101】有效括号序列、滑动窗口的最大值
【牛客面试必刷TOP101】有效括号序列、滑动窗口的最大值
|
算法 前端开发
经典面试题:有效的括号
在前端算法面试中,经常会被问到的一道题是 - “有效的括号”或者是称呼为“字符串是否是括号匹配”,什么意思呢?
168 0
【面试高频系列】生成所有「有效括号」,以及如何考虑「成对组合生成」问题 ... |刷题打卡
【面试高频系列】生成所有「有效括号」,以及如何考虑「成对组合生成」问题 ... |刷题打卡
[leetcode/lintcode 题解] 阿里算法面试真题:最长有效括号
[leetcode/lintcode 题解] 阿里算法面试真题:最长有效括号
[leetcode/lintcode 题解] 阿里算法面试真题:最长有效括号
|
1月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
下一篇
DataWorks