2011-09-07 39 views
0

我需要找到一種方法來產生一個字符串與特定字符的所有組合,以始終顯示在PHP中。如何獲得固定字符位置的字符串的所有組合?

例如,給定的字符串「ABCD」,我想獲得與字符「B」存在的字符串的所有組合,我想獲得:

陣列(「B」, 'BC 」, 'BCD', 'B d', 'AB', 'ABC', 'AB d', 'ABCD')

丟失的字符被替換爲空格。有人有主意嗎?

回答

6

如果想想字符串中的每個字母是「開」還是「關」 - 就像二進制數中的一個字,很容易。事實上,你可以這樣表示。

因此,將您的字符串視爲四位數字,可以是0b0000 = 0 = ""0b1111 = 15 = "ABCD"之間的任意值。然後,您可以遍歷所有從0到15的數字,並通過查看設置的位來查找相應的「排列」。

例如, 「置換」 6:0b0110 -> " BC "

希望幫助!

PS:如果這是家庭作業,您應該這樣標記它 - 這裏有點不合適。

PPS:您的「permutations」實際上是「combinations.」鏈接到維基百科,以防萬一您好奇。

相關問題