Solució del lliurament 1 G40 d’Informàtica

Organització:

Secció ETSEIB, Departament de Ciències de la Computació, UPC

Data:

28 de setembre de 2022

Copyright:

Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons

Durada:

45 minuts

Jocs de proves

Tests Cims i valls

>>> from cims_valls import cims_valls
>>> it1 = iter([4, 6, 8, 10, 9, 7, 6, 5, 7, 11, 4, 2, 8])
>>> ita = cims_valls(it1)
>>> la = list(ita)
>>> if la != [4, 10, 5, 11, 2, 8] and la != [4, 10, 5, 11, 2]:
...   print(la)        # doctesttag: +TAG=1_civ
>>> it2 = iter([5, 10, 15, 20, 25, 18, 16, 15, 17, 19, 22])
>>> itb = cims_valls(it2)
>>> lb = list(itb)
>>> if lb != [5, 25, 15, 22]  and lb !=   [5, 25, 15]:
...   print(lb)        # doctesttag: +TAG=1_civ
>>> it3 = iter([4, 7, 4, 7, 4, 7, 4, 7, 4, 7, 4, 7])
>>> itc = cims_valls(it3)
>>> lc = list(itc)
>>> if lc != [4, 7, 4, 7, 4, 7, 4, 7, 4, 7, 4, 7] and lc != [4, 7, 4, 7, 4, 7, 4, 7, 4, 7, 4]:
...    print(lc)       # doctesttag: +TAG=1_civ
>>> it4 = iter([101, 206, 500, 425, 323, 121, 234, 456, 567, 378, 234, 198, 345])
>>> itd = cims_valls(it4)
>>> ld = list(itd)
>>> if ld != [101, 500, 121, 567, 198, 345] and ld  != [101, 500, 121, 567, 198]:
...   print(ld)         # doctesttag: +TAG=1_civ
>>> it5 = iter([10, 100, 10])
>>> ite = cims_valls(it5)
>>> list(ite)         # doctesttag: +TAG=1_civ
[10, 100, 10]
>>> it6 = iter([-2, -3, -4, -3, -2, 0, -2, -3])
>>> itf = cims_valls(it6)
>>> list(itf)         # doctesttag: +TAG=1_civ
[-2, -4, 0, -3]
>>> it7 = iter([2, 3, 4, 5, 2, 3, 4, 3, 2, 3, 4])
>>> itg = cims_valls(it7)
>>> list(itg)         # doctesttag: +TAG=1_civ
[2, 5, 2, 4, 2, 4]
>>> it8 = iter([-2, -3, -4, -5, -6, -5, -4, -3, -2])
>>> ith = cims_valls(it8)
>>> list(ith)         # doctesttag: +TAG=1_civ
[-2, -6, -2]

Tests Palindroms

>>> from palindrom import palindrom
>>> it = iter(['aimia', 'alla', 'orella', 'ala', 'nas', 'nan', 'aviva', 'boca', 'ull', 'erre', 'cama', 'rossor', 'rossoossor', 'commoc', 'abccba', 'rallar'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('alla', 4), ('erre', 4), ('rossor', 6), ('rossoossor', 10), ('commoc', 6), ('abccba', 6), ('rallar', 6)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('aimia', 5), ('ala', 3), ('nan', 3), ('aviva', 5)]
>>> it = iter(['recer', 'tirrit', 'atirrita', 'sos', 'sorros', 'toarraot', 'suaus', 'caramel', 'poma', 'tellet', 'tarat', 'tros', 'capsa', 'pipiripip', 'turuurut', 'cap'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('tirrit', 6), ('atirrita', 8), ('sorros', 6), ('toarraot', 8), ('tellet', 6), ('turuurut', 8)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('recer', 5), ('sos', 3), ('suaus', 5), ('tarat', 5), ('pipiripip', 9)]
>>> it = iter(['coc', 'erre', 'selles', 'nevaven', 'dfggfd', 'siris', 'dfghhgfd', 'adebassabeda', 'tartrat', 'aeiouuoeia', 'lkjjkl', 'tovot'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('erre', 4), ('selles', 6), ('dfggfd', 6), ('dfghhgfd', 8), ('adebassabeda', 12), ('lkjjkl', 6)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('coc', 3), ('nevaven', 7), ('siris', 5), ('tartrat', 7), ('tovot', 5)]
>>> it = iter(['tellet', 'avalava', 'plastic', 'col', 'caiac', 'sol', 'anec', 'cec', 'mam', 'mem', 'cinic', 'sedes', 'coca', 'sal'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('tellet', 6)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('avalava', 7), ('caiac', 5), ('cec', 3), ('mam', 3), ('mem', 3), ('cinic', 5), ('sedes', 5)]
>>> it = iter(['aviva', 'commoc', 'pal', 'fel', 'rallar', 'fil', 'coll', 'alla', 'toll', 'tallat', 'assussussa', 'gall', 'tellet', 'fanal', 'tatarratat', 'llum'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('commoc', 6), ('rallar', 6), ('alla', 4), ('tallat', 6), ('assussussa', 10), ('tellet', 6), ('tatarratat', 10)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('aviva', 5)]
>>> it = iter(['cinic', 'cavall', 'cavaavac', 'civic', 'sorros', 'colla', 'coc', 'selles', 'cella', 'cel', 'titit', 'sis', 'simis', 'som', 'rem'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('cavaavac', 8), ('sorros', 6), ('selles', 6)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('cinic', 5), ('civic', 5), ('coc', 3), ('titit', 5), ('sis', 3), ('simis', 5)]
>>> it = iter(['ete', 'ata', 'tatat', 'iai', 'adelleda', 'aaallaaa', 'isodosi', 'fita', 'ginesta', 'dron', 'mel', 'lleell', 'pell', 'coc', 'cocococ'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('adelleda', 8), ('aaallaaa', 8), ('lleell', 6)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('ete', 3), ('ata', 3), ('tatat', 5), ('iai', 3), ('isodosi', 7), ('coc', 3), ('cocococ', 7)]
>>> it = iter(['nena', 'civic', 'mina', 'sol', 'tro', 'serres', 'rasa', 'rata', 'rere', 'tren', 'vago', 'seient', 'fill', 'fulla', 'gall'])
>>> it1, it2 = palindrom(it)
>>> list(it1)         # doctesttag: +TAG=2_palindrom
[('serres', 6)]
>>> list(it2)         # doctesttag: +TAG=2_palindrom
[('civic', 5)]