4. naloga

Pangramski podniz


Pangram je niz, ki vsebuje vsako črko abecede vsaj enkrat; pri tej nalogi pa nas bodo zanimali malo bolj posebni pangrami — taki, ki vsebujejo vsako črko abecede vsaj k- krat. Napiši podprogram oz. funkcijo, ki za dani niz s in naravno število k vrne dolžino najkrajšega takega strnjenega podniza niza s, v katerem se vsaka črka abecede pojavi vsaj k-krat. Če takega podniza sploh ni, naj funkcija vrne -1. Niz s je sestavljen le iz malih črk angleške abecede, lahko pa je zelo dolg, zato naj bo tvoja rešitev čim bolj učinkovita.

Primer: če bi namesto cele abecede gledali le črke {a,b,c} in če bi imeli k = 2, bi bil najkrajši primerni podniz v nizu s = aabaaccabaacccbabb dolg 7 znakov. Taki podnizi so celo trije: baaccab, baacccb, acccbab. Poudarimo pa, da je to samo primer in da mora tvoja rešitev delovati za celotno abecedo in za poljuben k in poljubno dolg niz s.