Ruby Permutation(内置) - 结果不包含相邻的相同字母

时间:2011-05-31 14:42:04

标签: ruby permutation ruby-1.8

感谢昨天的帮助,也教我一些新的东西。 :)

我还有另一个基于排列的问题...我运用的算法但是我有一个问题,即生成的列表中缺少相同的相邻字符。

例如,如果我有字符列表az,0-9, - 并且假设最大长度为2,那么我应该看到aa,bb,cc,dd,ee,ff等ad adause。

length = 1
alphabet = [('a'..'z').to_a, ('0'..'9').to_a, ('-').to_a].flatten
prefix = 'file-'
suffix = '.txt'


while length < 3


alphabet.permutation(length).each do |x|

@name =  prefix+x.join('').to_s+suffix
puts @name

end

length += 1

end

但是,我只看到以下内容:

file-ba.txt
file-bc.txt

注意缺少的“bb”,这将一直持续到程序结束。

我确信我错过了什么,只是不确定是什么?

2 个答案:

答案 0 :(得分:3)

我认为你想使用repeated_permutation而不是置换。

http://www.ruby-doc.org/core/classes/Array.html#M000289

它将生成所有排列,包括“file-bb.txt”。

答案 1 :(得分:1)

那是what a permutation is。 [1,2,3]的唯一6个排列是

123
132
213
231
312
321
相关问题