Rešitve s komentarji
Rešitve
Vsak po enkrat
Niz pretvorimo v množico. Ta bo imela vsak znak samo po enkrat. Če je velikost množice enaka dolžini niza, je imel tudi niz vsak znak samo po enkrat.
Kot vedno pa obstajajo tudi daljše rešitve. Lahko gremo prek niza in za vsako črko preverimo, ali se je že pojavila: če se i-ta črka že pojavi med prvimi i-timi, se očitno pojavi (vsaj) dvakrat.
Variant tega je še polno, recimo
Veliko, a ne več kot
Kot je namigoval namig, gremo prek vseh možnih koncev
(for j in range(len(s) + 1)) in znotraj tega prek vseh možnih
začetkov (for u in range(j)). Če je vsota v podseznamu
s[i:j] dovolj majhna in hkrati večja od vseh doslejšnjih dovolj
majhnih, si zapomnimo vsoto, začetek in konec. Na koncu vrnemo najboljše, kar
smo našli.
Palindrom
Rekurzija postaja dolgočasna.
Slepa polja
Gremo čez vsa polja. Za vsako polje pogledamo polja, v katera je mogoče priti. Če ta polja ne nastopajo v slovarju, so slepa in jih dodamo v množico slepih polj.
Skupni prijatelji
Gremo čez vse ljudi (b), preverimo število skupnih prijateljev a in b. Če je večje od največjega doslej, si to zapomnimo. Edini zoprni detajl je, da a in b ne smeta biti ena in ista oseba.