当前位置: 代码迷 >> 综合 >> JAVA算法:括号配对问题与卡塔兰数(Catalan number)
  详细解决方案

JAVA算法:括号配对问题与卡塔兰数(Catalan number)

热度:75   发布时间:2024-01-15 19:30:16.0

JAVA算法:括号配对问题与卡塔兰数(Catalan number)

LeetCode中第22题目:22. Generate Parentheses

原题链接:https://leetcode.com/problems/generate-parentheses/

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:

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

这道题目大意是:给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。


问题分析

求解这个题目并不是很困难。但是要深究这个题目,需要了解什么是卡塔兰数,又可以叫做卡特兰数,英文是:Catalan Number

那么什么是Catalan Number?

百度百科给出的描述为:卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在各种计数问题中的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。

其前几项为(从第零项开始) : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324,

  相关解决方案