回答
由于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