Vaje iz podatkovnih tipov in funkcij¶
Palindromi¶
Uporabnik vpiše niz znakov, program pa pove, ali je vpisan niz palindrom ali ne. Palindrom je niz znakov, ki se enako prebere z leve in z desne.
Primer:
"abba"
"keks"
Program izpiše:
NI palindrom
JE palindrom
Palindromi 2.0¶
Isto kot prva naloga, le da program ignorira presledke. Primer:
"perica reže raci rep"
"ali se bo gordana na drog obesila"
"danes je lep dan"
"edo suče meč usode"
Program izpiše:
JE palindrom
JE palindrom
NI palindrom
JE palindrom
Kompresija¶
Napiši funkcijo, ki gre skozi seznam, in pobriše vse enake sosede (če je v seznamu zaporedoma več enakih elementov, jih spremeni v en sam element). Primer:
>>> pobrisi_sosede([1, 2, 2, 2, 3, 3, 4, 5, 6, 6, 6, 6, 6, 6, 7, 8, 2])
[1, 2, 3, 4, 5, 6, 7, 8, 2]
Zlivanje¶
Napiši funkcijo, ki združi 2 po velikosti naraščajoča urejena seznama v nov urejeni seznam. To naj počne tako, da vsak element pregleda le enkrat.
Primer:
>>> zdruzi([1, 2, 5], [0, 3, 8, 12])
[0, 1, 2, 5, 8, 12]
Krožna praštevila¶
Praštevilu rečemo krožno, če so tudi vse rotacije praštevila. Primer je število 197, saj so vse rotacije (197, 971, 719) tudi praštevila. Napiši funkcijo krozna(\(n\)), ki najde vsa krožna praštevila do \(n\).
Hint
Če je \(n=1000000\) je krožnih praštevil 55.
Primer:
>>> krozna(100)
2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 97
Politično orientirana praštevila¶
Praštevilo je LEVO, če ostane praštevilo, ko brišemo števke z leve. Praštevilo je DESNO, če ostane praštevilo, ko brišemo števke z desne. Napiši program, kjer uporabnik vpiše število, program pa pove, če je to praštevilo, če je levo praštevilo in če je desno praštevilo. Primer levega in desnega praštevila je 3797, saj so vse leve (3797, 797, 97, 7) in vse desne (3797, 379, 37, 3) iteracije praštevila. 61 je primer praštevila, ki je levo (61, 1), ni pa desno (61, 6).
Primer:
3797
61
Program izpiše:
Število JE praštevilo.
Število JE levo praštevilo.
Število JE desno praštevilo.
-----
Število JE praštevilo.
Število JE levo praštevilo.
Število NI desno praštevilo.