-2

给定一个字符串:“ABCD”,返回具有一个或多个缺失字符的子字符串,保持字符串的顺序。这似乎不是“排列”,但我不确定这个算法是否有名字。我正在使用它来生成单词和单词中单词的字谜。

例子:

A B C D

AB BC CD AC AD << 缺少 BC

ABC BCD ACD ABD

4

1 回答 1

1

您正在生成输入字符串字符的有序幂集- 意思是,您可以从输入字符串中的字符集中获得的所有子集,保留初始顺序:

input  = { A, B, C, D }
output = { {}, {A}, {B}, {C}, {D}, {A, B}, {B, C} {C, D}, {A, C}, {A, D},
           {B, D}, {A, B, C}, {A, B, D}, {A, C, D}, {B, C, D}, {A, B, C, D} }

结果集包含2^n元素(具有n输入集的大小),您可能希望从结果中删除空集和输入集,但基本上这是您正在寻找的算法。很容易找到任何你想要的语言的实现

于 2013-04-09T16:03:39.913 回答