回答
由于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. 虾红宝石文档生成pdf
- 16. 逃生\\\的红宝石为\
- 17. 红宝石宝石devise无法生成初始化程序
- 18. 红宝石宝石从PNG生成GIF CSS精灵?
- 19. 在红宝石
- 20. 红宝石 - 上的所有块变量
- 21. 红宝石睡眠(0.05)的每个字符,所有输出
- 22. 红宝石
- 23. 递归函数生成一个单词中所有大写字母的组合
- 24. 红宝石散列在红宝石
- 25. 红宝石
- 26. 红宝石 - encrypted_strings
- 27. Twitter的红宝石宝石
- 28. 生成许多几乎相同的红宝石单元测试
- 29. 红宝石 - 编写一个猜测字母的程序
- 30. 红宝石
或者,简单地说,它本身就是'Array#product'。 :) – 2011-03-06 20:43:15
@Mladen:确实,这可能对混合不同的字母集合有用。答复更新,谢谢。 – 2011-03-06 20:52:01