Ruby - 生成所有两个字母的单词

时间:2011-03-06 19:38:22

标签: ruby arrays

我正在尝试生成一个包含所有两个字母组合的数组。

生成它的最佳方式是什么。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:20)

正如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)

注意repeated_combination在Ruby 1.9.2或require 'backports/1.9.2/array/repeated_combination' gem backports中可用。

答案 1 :(得分:8)

('aa'..'zz').to_a

将范围转换为数组。