【发布时间】:2019-10-13 20:51:58
【问题描述】:
我想生成一个包含可选部分的字符串的所有可能组合的列表。这可能最好用一些例子来解释:
-
A[B]→A和AB -
A[B][C]→A,AB,AC和ABC -
A[B[C]]→A、AB和ABC
我希望这足以解释我想要做什么。
我可以为此编写我自己的小解析器或“算法”,但我有一种强烈的感觉,即有一个现有的(并且更简单的)解决方案。因为我(还)没有接受过任何形式的 CS 教育,所以我不知道我在寻找什么样的算法,甚至不知道要使用什么搜索词。
我的预感是否正确,实际上是否有一种现有的(有据可查的)方法来解决这个问题?
【问题讨论】:
-
不知道现有的算法,但如果我必须这样做,我会为模式构建图,将图扩展为树,然后进行广度优先遍历。
-
“算法”和“算法”有什么区别? (意思是,你为什么在问题描述中把这个词放在引号中)
-
@גלעדברקן 好点,我使用“算法”(带引号)的意思是:它符合算法的定义,但它不是“以任何方式“聪明”或“高效”。这更有意义吗?
-
@NeilEdelman 看起来确实很相似,但我不确定如何将其应用于我的问题。你能详细说明一下吗?
标签: string algorithm combinatorics