2013-05-25 35 views
1

我想在字符串的每個可能的索引處插入一個字符,包括在第一個元素之前和最後一個之後。現在我做:在字符串中的所有字符之間插入字符的更簡明的方法

 result = [] 
     result << c + str 
     result << str + c 
     for i in 0..str.length-2 do 
     result << (str[0..i] + c + str[i+1..-1]) 
     end 

是否有這樣做,而不必2特殊情況下,並具有從0循環來str.length - 2

編輯

與「樣本輸出的一種方式 - '和'你好':

["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"] 
+0

你想基本上是交錯他們? – squiguy

+1

你想要什麼輸出? '[「-hello」,「h-ello」,「he-llo」,「hel-lo」,「hell -o」,「hello - 」]或者「-h-e-l-l -o--」。您的代碼指向1,您的單詞爲2. – tokland

+1

您應該提供樣本輸入和輸出,而不僅僅是您的解決方案和描述。 –

回答

6

我假設你想要["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"],你的問題不清楚。

​​

對於那些喜歡功能的方法(我):

(0..s.size).map { |i| (s[0...i] + "-" + s[i..-1]) } 
#=> ["-hello", "h-ello", "he-llo", "hel-lo", "hell-o", "hello-"] 
+0

+1,我認爲這是OP想要的。這是我從標題/描述中推斷樣本輸入/輸出而不是運行他們的代碼所得到的結果... –

+0

我首先得到了這個觀點,並且得到了信用,奇怪:) –

+1

我印象深刻,你知道這就是答案應該沒有樣本輸出。 – squiguy

相關問題