回答
由於steenslag
指出,最快的方法是
('aa'..'zz').to_a
如果你的字母不是 'a' 到 'Z',不過,你可以使用Array#repeated_combination
:
alphabet = %w[А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я]
alphabet.repeated_combination(2).map(&:join) # => ["AA", "AБ", ...]
或者,如Mladen
指出:
alphabet.product(alphabet).map(&:join)
Note:repeated_combination
在Ruby 1.9.2中可用,或者在backports
寶石中可用require 'backports/1.9.2/array/repeated_combination'
。
('aa'..'zz').to_a
將範圍轉換爲數組。
**這**是我喜歡Ruby的原因!我有'(('a'..'z')to_a.permutation(2).map(&:join)+('a'..'z')。to_a.map {| a | a * 2 })',但後來我想,*「這是一團糟,我想知道'('aa'''zz')'會起作用嗎?」然後,我很驚訝。 – 2011-03-06 19:51:56
@Ashley:雖然你的方法非常通用,並且使用'repeated_combination'使它更加清晰(請參閱我的答案)。 – 2011-03-06 20:28:07
- 1. 將單詞分解爲帶有紅寶石的字母
- 2. 紅寶石寶石生成內容
- 3. 紅寶石測試的字生成器
- 4. 紅寶石:生成陣列
- 5. 紅寶石/正則表達式得到每個單詞的第一個字母
- 6. 紅寶石成語針對兩個值
- 7. 紅寶石中的短命名空間首字母縮寫詞
- 8. 用紅寶石找到字母數字
- 9. 兩個紅寶石陣列
- 10. 從包含某個字符的紅寶石中清除單詞
- 11. 生成字母表中的所有單詞
- 12. 用紅寶石字母大寫第一個字母
- 13. 紅寶石字符串拆分成單詞忽略所有特殊字符:更簡單的查詢
- 14. 單詞正則表達式紅寶石
- 15. 紅寶石fastcsv導入俄語單詞
- 16. 與紅寶石
- 17. 紅寶石詞彙庫
- 18. 詞包括紅寶石
- 19. 分詞紅寶石計數
- 20. 用紅寶石中的硒遍歷所有表單字段
- 21. 紅寶石:搜索多個搜索詞
- 22. 把兩個字符串變成紅寶石哈希?
- 23. 生成路徑在圖紅寶石
- 24. 紅寶石模型生成器
- 25. 蝦紅寶石文檔生成pdf
- 26. 紅寶石年哈希生成
- 27. 紅寶石生成器衝突
- 28. 紅寶石生成器模式或庫
- 29. 逃生\\\的紅寶石爲\
- 30. 生成模型後紅寶石寶石設計錯誤
或者,簡單地說,它本身就是'Array#product'。 :) – 2011-03-06 20:43:15
@Mladen:確實,這可能對混合不同的字母集合有用。答覆更新,謝謝。 – 2011-03-06 20:52:01