我们怎样才能在大括号上生成所有可能性?
N值已经给了我们,我们要产生所有的可能性。
例子:
1) 如果 N == 1,则只有一种可能性 () 。
2) 如果 N==2,则可能性为 (())、()()
3) 如果 N==3,则可能性为 ((()))、(())()、()()()、()(()) ...
注意:左括号和右括号应该匹配。我的意思是 )( 对于 N==1 无效
我们可以用递归的方法来解决这个问题吗?
来自维基百科 -
Dyck 单词是由 n 个 X 和 n 个 Y 组成的字符串,因此该字符串的初始段中 Y 的数量不会多于 X 的数量(另请参阅 Dyck 语言)。例如,以下是长度为 6 的 Dyck 词:
XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY.
将符号 X 重新解释为左括号,将 Y 重新解释为右括号,Cn 计算包含正确匹配的 n 对括号的表达式的数量:
((())) ()(()) ()()() (())() (()())
也可以看看http://www.acta.sapientia.ro/acta-info/C1-1/info1-9.pdf
抽象的。提出了一种生成所有 Dyck 词的新算法,
用于对 Dyck 单词进行排名和取消排名。我们强调
在编码与加泰罗尼亚语相关的对象时使用戴克词的重要性
数字。作为排名算法中使用的公式的结果
我们可以得到第 n 个加泰罗尼亚数的递归公式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)