需要一个算法......不确定这是什么叫做

时间:2013-04-09 15:59:47

标签: algorithm anagram string-algorithm

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

示例:

一个 乙 C d

AB 公元前 光盘 AC AD<<缺少BC

ABC BCD ACD ABD

1 个答案:

答案 0 :(得分:1)

您正在生成输入字符串的有序power set字符 - 这意味着,您可以从输入字符串中的字符集中获取所有子集,保留初始顺序:

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是输入集的大小),您可能希望从结果中删除空集和输入集,但基本上这是你正在寻找的算法。对于您想要的任何语言,很容易找到implementations