2013-04-09 31 views
-2

給定一個字符串:「ABCD」,返回帶有一個或多個缺失字符的子字符串,以保持字符串的順序。這似乎不是一個「排列」,但我不確定這個算法是否有名稱。我正在使用它來生成一個單詞和單詞中的單詞。需要算法...不確定這是什麼叫

實施例:

甲 乙 Ç d

AB BC CD AC AD < <缺少BC

ABC BCD ACD ABD

+0

那麼基本上找到所有的子集,並刪除那些只要原始字符串? – JJJ 2013-04-09 16:03:06

回答

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