給用戶兩個輸入A
和B
(集合)和一個數字X
,並且必須創建一個輸出。輸出以A
的第一個值開始,然後從B
取得X
個單位,然後是第二個值A
,並繼續如此,直到A
和B
都已用盡。你可以假設1 < X < sizeof(B)
。但是,如果A
或B
用完,您應該循環回到短集合的開始處,並繼續,直到另一個用完。循環回來應該繼續下去,直到兩個集合都結束。如何合併兩個Ruby集合?
什麼是優雅在Ruby中如何做到這一點?我有一些破解代碼,似乎無法找到一個好方法來做到這一點。不,這不是一個家庭作業問題。我有奇怪的愛好。
這裏的行爲的一些樣本測試中,我想:
# SomeModule.copy(A, B, X)
SomeModule.copy(%w(a1 a2 a3), %w(b1 b2 b3), 1) == %w(a1 b1 a2 b2 a3 b3))
SomeModule.copy(%w(a1), %w(b1), 1) == %w(a1 b1))
SomeModule.copy(%w(a1), %w(b1 b2 b3), 1) == %w(a1 b1 a1 b2 a1 b3))
SomeModule.copy(%w(a1 a2), %w(b1 b2 b3 b4 b5), 2) == %w(a1 b1 b2 a2 b3 b4 a1 b5 b1))
SomeModule.copy(%w(a1 a2), %w(b1 b2 b3 b4 b5), 2) == %w(a1 b1 b2 a2 b3 b4 a1 b5 b1))
SomeModule.copy(%w(a1 a2 a3 a4), %w(b1 b2 b3 b4 b5), 3) == %w(a1 b1 b2 b3 a2 b4 b5 b1 a3 b2 b3 b4 a4 b5 b1 b2))
什麼是你在Ruby中嘗試的方式嗎?即使是一半的,完全沒有希望的代碼也是你在解決方案上付出努力的一個標誌,它激勵人們提供幫助。 – tadman
一個簡單的例子,包括你想要的結果將是有幫助的。 –
@CarySwoveland我包括帶有輸入和期望輸出的樣本測試。 –