9
votes

Comment résumer des gamme d'entiers comme une gamme de gammes?

J'aimerais prendre des données telles que:

[[1,2],[4,7],[9,9],[13,13]]


5 commentaires

Demandez-vous s'il y a un code pour le faire déjà? Demandez-vous parce que vous essayez de rouler le vôtre et d'avoir du mal à la mettre en œuvre?


Je roule le mien. On dirait qu'il y a toujours des moyens intéressants de mettre en œuvre ce genre de chose à Ruby.


Par quelles conditions les gammes sont-elles censées être construites?


Une séquence entière continue dans le tableau doit composer une "plage" qui n'est vraiment qu'un tableau avec le début et la fin.


Dupliqué possible de Array d'index à la matrice de gammes


5 Réponses :



0
votes

Une autre approche xxx

similaire à la méthode de Larsenal, mais en utilisant l'injection pour gérer les trucs ennuyeux.


0 commentaires

3
votes

hmm, eh bien, ce n'est pas Tokland chef-d'œuvre, mais je pense que c'est peut-être une bonne solution directe ... < Pré> xxx


0 commentaires


5
votes

une solution encore plus facile que @ Tokland's Thy Nice One utilise chunk_while code> :

xs.chunk_while { |a, b| a + 1 == b }.map do |seq|
  [seq.first, seq.last]
end


0 commentaires