LeetCode22 -- iOS使用OC写算法之括号生成

LeetCode22 -- iOS使用OC写算法之括号生成,第1张

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:

输入:n = 1
输出:["()"]
 

提示:

1 <= n <= 8

上代码:

-(NSArray *)generateParenthesis {

    int n = 3;

    NSMutableArray *list = [NSMutableArray new];

    return [self getParenthesis:list left:0 right:0 n:n result:@""];

}

-(NSArray *)getParenthesis:(NSMutableArray *)list left:(int)left right:(int)right n:(int)n result:(NSString *)result {

    if (left == n && right == n) {

        [list addObject:result];

        return list;

    }

    if (left < n) {

        [self getParenthesis:list left:left + 1 right:right n:n result:[NSString stringWithFormat:@"%@%@",result,@"("]];

    }

    if (left > right && right < n) {

        [self getParenthesis:list left:left right:right + 1 n:n result:[NSString stringWithFormat:@"%@%@",result,@")"]];

    }

    return list;

}

leetcode链接:力扣

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/994541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存