1. Distància repetit (5 punts)

Avís

Per a resoldre aquest exercici no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar tots els elements d’un iterador.

Es té una successió de nombres enters, la qual sovint repeteix el seu primer valor. Es vol comptar quants enters hi han al mig del valor repetit, i generar una successió del comptatge esmentat. Per exemple,

1 2 3 4 3 2 1 1 0 1 2 5 6 5 4 2 1

obtindriem

5 0 1 6

Es demana que, en un fitxer anomenat distrep.py, hi deseu la funció generadora especificada a continuació:

distrep.disti(it)
Paràmetres:

it – iterador sobre una sèqüència de valors enters. L’iterador sempre tindrà un primer element.

Retorna:

un iterador del nombre d’enters que hi ha entre dos valors repetits de del primer element de l’iterador it.

Per exemple:

>>> it=iter([1,2, 3, 4, 3, 2, 1, 1, 0, 1, 2, 5, 6, 5, 4, 2, 1])
>>> g = disti(it)
>>> next(g)
5
>>> next(g)
0
>>> next(g)
1
>>> next(g)
6

Disposeu d’un joc de proves més complet en el fitxer tests-distrep.txt