Ho una serie di elementi. Alcuni articoli hanno un numero su entrambi i lati. Chiamerò queste "coppie abbinate". Ho bisogno di ordinare gli elementi tra le coppie abbinate in un modo particolare.
C'è un "da numero" e un "da numerare"
Potrebbe esserci più from -> nil
di
nil-> to
o vice-versa.
Potrebbe anche esserci NESSUN oggetto tra le coppie abbinate.
Puoi presumere che i numeri saranno sempre
essere ordinati all'interno della loro colonna. Per esempio. Dai numeri
passerà da 1 a x crescente e ai numeri
andrà da 1 a x crescente. Potrebbe esserci nil
s
inserito comunque.
# I have this
# v from number
# v to number
[
[nil, 1],
[1, 2], # a matched pair
[2, nil],
[3, nil],
[4, nil],
[5, nil],
[nil, 3], # note that there are more
[nil, 4], # nil -> to number than
[nil, 5], # from number -> nil
[nil, 6],
[nil, 7],
[6, 8], # another matched pair
[7, 9], # nothing in between
[8, nil],# no nil->to number to pair it with
[9, 10]
]
Devo trasformarlo in questo. Siamo quasi, ma non abbastanza interleaving gli elementi da ogni colonna.
[
[nil, 1],
[1, 2],
[2, nil],
[nil, 3],
[3, nil],
[nil, 4],
[4, nil],
[nil, 5],
[5, nil],
[nil, 6],
[nil, 7],
[6, 8],
[7, 9],
[8, nil],
[9, 10]
]
Informazioni aggiuntive che potrebbero essere utili o meno,
Questi numeri rappresentano linee in due documenti. Nell'esempio sopra, il testo sulla riga 2 nel documento "da" non è stato trovato in il documento "a". È stato sostituito dal testo sulla riga 3 (nel documento "a"). Il testo sulla riga 3 nel documento "a" non lo era trovato nel documento "da" così. Quindi, 2 - > nil (due sono andati via) nil- > 3 (tre è stato aggiunto).