2
我有一個數據結構,它看起來像這樣:遞歸地解決置換
[
{:choices=>["Hello", "Hi"]},
" ",
{:choices=>["wor", {:choices=>["ld", "d"]}, "there"]},
", says ",
"your ",
{:choices=>["friend", "amigo"]}
]
在這種結構中,選擇節點表示的一組可能值的和可以由。
我需要一個(可能是遞歸的)Ruby方法,它將輸出所有可能輸出的數組。即,在這個例子:
[
"Hello word, says your friend",
"Hello world, says your friend",
"Hello there, says your friend",
"Hi word, says your friend",
"Hi world, says your friend",
"Hi there, says your friend",
"Hello word, says your amigo",
"Hello world, says your amigo",
"Hello there, says your amigo",
"Hi word, says your amigo",
"Hi world, says your amigo",
"Hi there, says your amigo"
]
我希望這是遞歸的,但我一直在敲打它我的頭一個小時,我想多了一雙眼睛。我在這裏錯過了什麼?
你的數據結構是錯誤的。 「wor」,'{:choices => [「ld」,「d」]}','「there」三個元素將被解釋爲替代,因此不會給出您想要的結果。 – sawa 2011-12-25 04:52:17