1. Màxims i Mínims Locals (3 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.
Donada una seqüència de nombres finita, definim màxim (mínim) local com a tot nombre que no és ni el primer ni el darrer, i va precedit i seguit de nombres estrictament menors (majors). A l’exemple d’aquí sota, el 3 que està situat a la posició 2 de la llista l és un màxim local perquè està precedit d’un 2 i seguit d’un 2.
Al mòdul maxmin_locals (fitxer maxmin_locals.py) es demana que facis la funció generadora Python següent:
- maxmin_locals.maxmin_locals(it)¶
- Paràmetres:
it – iterador sobre una seqüència d’enters
- Retorna:
iterador sobre la seqüència de màxims i mínims locals de
it. Per a cada màxim i mínim local es genera una tupla amb els valors següents:
Per exemple:
>>> l = [1, 2, 3, 2, 1, 2, 3, 0, 2, 1]
>>> it = iter(l)
>>> itsol = maxmin_locals(it)
>>> itsol == iter(itsol) and list(itsol) == [('max', 3, 2), ('min', 1, 4), ('max', 3, 6), ('min', 0, 7), ('max', 2, 8)]
True
Disposes d’un joc de proves més complet en el fitxer maxmin_locals-test.txt.