有效括号数量 加泰罗尼亚语数字 解释

Yas*_*svi 3 math catalan

在研究加泰罗尼亚数字时,我遇到的一些应用程序是:

  1. 没有使用 n 个节点的可能的二叉搜索树。
  2. 没有办法使用圆上的 2*n 个点绘制不相交的弦。
  3. 没有办法排列 n 对括号。

虽然我理解前两个问题,加泰罗尼亚数字如何适应他们的解决方案,但我无法理解它们如何适应第三个问题。

在互联网上找不到任何其他有用的资源来解释如何部分。每个人都说这就是解决方案。

有人可以解释一下吗?

Ror*_*ton 5

由于其他人似乎不同意我的观点,认为这个问题是题外话,我现在决定它是主题并提供和回答。

维基百科确实对“排列 n 对括号的方法数”(此链接中的第二个要点)感到困惑。部分困惑在于括号字符串的顺序与二叉树的顺序不匹配,你确实理解,或者还有许多其他例子。

这是一种将正确匹配的括号对字符串转换n为具有内部节点的二叉树的方法n。考虑最左边的括号,它将成为左括号及其匹配的右括号。将字符串转换为二叉树的节点。当前考虑的括号内的子字符串成为该节点的左子节点,当前考虑的右括号之后(右侧)的子字符串成为右子节点。一个或两个子字符串可能为空,并且当前考虑的括号被简单地删除。如果任一子字符串不为空,则递归地继续此过程,直到删除所有括号。

这里有两个例子。让我们从字符串开始((()))。我们从

在此输入图像描述

考虑的括号是最外面的括号。这变成了

在此输入图像描述

(我没有费心绘制外部叶节点)然后

在此输入图像描述

然后

在此输入图像描述

这是维基百科最左边的二叉树,有 3 个内部节点。

现在让我们做另一个字符串,(())()。我们从

在此输入图像描述

同样,所考虑的括号是最外面的括号。这转变为

在此输入图像描述

现在考虑的括号是前两个,而不是最外面的。这变成了

在此输入图像描述

最终变成

在此输入图像描述

这是维基百科列表中的第二个二叉树。

我希望你现在明白了。这是正确配对的 3 对括号的所有五个可能字符串的列表,后面是维基百科的二叉树列表。这些列表现在相互对应。

    ((()))       (()())        (())()       ()(())       ()()()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述