有效括号的数字加泰罗尼亚语数字说明

时间:2019-03-13 13:46:15

标签: math catalan

在研究catalan numbers时,我遇到的一些应用程序是:

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

虽然我了解前两个问题,加泰罗尼亚数字如何适合其解决方案,但我不明白它们如何适合第三个问题。

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

有人可以解释。

1 个答案:

答案 0 :(得分:2)

由于其他人似乎不同意这个问题,所以我现在决定将其作为话题,并提供答案。

Wikipedia确实对“排列n对括号的方式数目”(this link中的第二个要点)感到困惑。部分困惑是括号字符串的顺序不匹配您确实理解过的二叉树的顺序,或与许多其他示例一起使用。

这是将正确匹配的n对括号的字符串转换为带有n个内部节点的二叉树的方法。考虑最左括号(将是左括号)及其匹配的右括号。将字符串变成二叉树的节点。当前考虑的括号内 的子字符串成为该节点的左子代,而当前视图的 之后(右侧)的子字符串成为该节点的左子代。考虑正确的右括号成为正确的孩子。子字符串中的一个或两个都可以为空,并且只需删除当前考虑的括号即可。如果任一子字符串都不为空,请递归继续此过程,直到所有括号都被删除。

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

开始

enter image description here

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

enter image description here

(我并没有费心画外部叶子节点)

enter image description here

然后

enter image description here

这是Wikipedia最左侧的具有3个内部节点的二叉树。

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

开始

enter image description here

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

enter image description here

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

enter image description here

最终成为

enter image description here

这是Wikipedia列表中的第二个二叉树。

希望您现在能理解。这是正确配对的3对括号中所有五个可能字符串的列表,其后是Wikipedia的二叉树列表。这些列表现在彼此对应。

    ((()))       (()())        (())()       ()(())       ()()()

enter image description here