我正在尝试生成一个包含所有两个字母组合的数组。
生成它的最佳方式是什么。
有人可以帮助我吗?
答案 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
将范围转换为数组。