我有一个唯一数字的数组,像这样:[1,2,3,4,7,8,10,12]。它可能是未排序的。 我需要得到这个数组的区间:
intervals_for [1,2,3,4,7,8,10,12]
#=> "1-4, 7-8, 10,12"
我有自己的解决方案:
def intervals_for(array)
array.sort!
new_array = []
array.each do |a|
if new_array.last and a == new_array.last.last+1
new_array.last << a
else
new_array << [a]
end
end
new_array.map{|a| a.size > 1 ? "#{a.first}-#{a.last}" : a.first}.join(", ")
end
但我认为这里可能有更简洁的解决方案。
Pedro Yanoviches (1985-1994, 1999-2010)
。 - fl00r