You are on page 1of 3

Începeți cu următorul cod Python.

alfabet = "abcdefghijklmnopqrstuvwxyz"

test_dups = ["zzz","câine","contabil","subdermatoglife","subdermatoglife"]

test_miss = ["zzz","subdermatoglyphic","vulpea brună rapidă sare peste câinele leneș"]

# Din secțiunea 11.2 din:

# Downey, A. (2015). Gândiți-vă la Python: Cum să gândiți ca un informatician. Needham,


Massachusetts: Green Tree Press.

Histogramă (histograme) def:

d = dict() pentru c în s:

Dacă c nu este în D:

d[c] = 1

altfel:

d[c] += 1

returnat d

Copiați codul de mai sus în programul dvs., dar scrieți singur toate celelalte coduri pentru această
atribuire. Nu copiați niciun cod din altă sursă.

Partea 1
Scrieți o funcție numită has_duplicates care preia un parametru șir și returnează True dacă șirul are
caractere repetate. În caz contrar, ar trebui să returneze False.

Implementați has_duplicates prin crearea unei histograme utilizând funcția histogramă de mai sus. Nu
utilizați niciuna dintre implementările has_duplicates care sunt date în manual. În schimb,
implementarea ar trebui să utilizeze numerele din histogramă pentru a decide dacă există dubluri.

Scrieți o buclă peste șirurile din lista de test_dups furnizate. Imprimați fiecare șir din listă și dacă are
sau nu dubluri pe baza valorii returnate de has_duplicates pentru acel șir. De exemplu, ieșirea pentru
"aaa" și "abc" ar fi următoarea.

AAA are duplicate

ABC nu are duplicate

Imprimați o linie ca una dintre cele de mai sus pentru fiecare dintre șirurile din test_dups.
Histogramă (histograme) def:

d = dict()

pentru c în s:

Dacă c nu este în D:

d[c] = 1

altfel:

d[c] += 1

returnat d

Def has_duplicates(e):

dacă "aaa" în histogramă (histograme):

întoarcere Adevărat

altfel:

returnează Fals

def test_dups_loop():

pentru s în test_dups:

tipărit(e) + ':', has_duplicates(e))

Partea 2
Scrieți o funcție numită missing_letters care preia un parametru șir și returnează un șir nou cu toate
literele alfabetului care nu se află în șirul de argumente. Literele din șirul returnat trebuie să fie în
ordine alfabetică.

Implementarea ar trebui să utilizeze o histogramă din funcția histogramă. De asemenea, ar trebui să


utilizeze alfabetul variabil global. Ar trebui să folosească această variabilă globală direct, nu printr-un
argument sau o copie locală. Ar trebui să treacă peste literele din alfabet pentru a determina care
lipsesc din parametrul de intrare.
Funcția missing_letters ar trebui să combine lista literelor lipsă într-un șir și să returneze acel șir.

Scrieți o buclă peste șirurile din lista test_miss și apelați missing_letters cu fiecare șir. Imprimați o linie
pentru fiecare șir care enumeră literele lipsă. De exemplu, pentru șirul "aaa", ieșirea ar trebui să fie
următoarea.

AAA lipsește literele bcdefghijklmnopqrstuvwxyz

Dacă șirul are toate literele în alfabet, rezultatul ar trebui să spună că folosește toate literele. De
exemplu, ieșirea pentru stringalphabet în sine ar fi următoarea.

abcdefghijklmnopqrstuvwxyz folosește toate literele

Imprimați o linie ca una dintre cele de mai sus pentru fiecare dintre șirurile din test_miss.

Def missing_letters(e):

r = listă('abcdefghijklmnopqrstuvwxyz')

s = s.lower()

pentru c în S.Lower():

Dacă c în R:

r.remove(c) # prima instanță de potrivire

returnează ''.join(r)

def test_miss_loop():

pentru s în test_miss:

tipărit(e) + ':', missing_letters(e))

def principal():

test_dups_loop()

test_miss_loop()

You might also like