022 - Generate Parentheses

来源:互联网 发布:java中的static关键字 编辑:程序博客网 时间:2024/05/21 08:47

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

"((()))", "(()())", "(())()", "()(())", "()()()"



给定一个数字,列出所有括号组合

void fun(int left, int right, char *line, int lp, char **result, int *returnSize){if (left == 0) {while (right--)line[lp++] = ')';memcpy(result[(*returnSize)++], line, lp);return ;}if (left == right) {line[lp++] = '(';return fun(left - 1, right, line, lp, result, returnSize);}line[lp++] = '(';fun(left - 1, right, line, lp, result, returnSize);line[lp - 1] = ')';fun(left, right - 1, line, lp, result, returnSize);}char** generateParenthesis(int n, int* returnSize) {int left = n, right = n;char line[1024] = {0};int lp = 0;char **result = (char **)calloc(sizeof(char *), 8192);int i;for (i = 0; i < 8192; i++) result[i] = (char *)calloc(sizeof(char), n + 1);*returnSize = 0;fun(left, right, line, lp, result, returnSize);return result;}


0 0
原创粉丝点击