0138 - Frecventa: Difference between revisions
Pagină nouă: == Cerința == Să se scrie un program care citește un șir de caractere și afișează litera mică cel mai des întâlnită în șir. == Date de intrare == Programul citește de la tastatură un șir de cel mult 255 caractere. == Date de ieșire == Programul afișează pe ecran litera mică cel mai des întâlnită în șir. == Restricții și precizări == : - șirul conține litere mari și mici ale alfabetului englez, cifre și spații : - dacă șirul conține mai mul... |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 18: | Line 18: | ||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line="1"> | ||
#0138 Frecventa | # 0138 Frecventa | ||
def verificare(sir_chr): # functia de validare a datelor de intrare | |||
for caracter in sir_chr: | |||
if 122 < ord(caracter) < 97: | |||
if ord(caracter) != ord(" "): # caracterul trebuie sa fie litera sau spatiu | |||
return False | |||
return True | |||
def frecventa(sir): | |||
nr_alfabet = [] # vectorul de frecventa in care numaram fiecare litera din alfabet | |||
for i in range(123): | |||
nr_alfabet.append(0) | |||
for caracter in sir: # numaram fiecare litera din sir in vectorul de frecventa | |||
nr_alfabet[ord(caracter)] += 1 | |||
max_aparitii = max(nr_alfabet[97:]) # aflam numarul maxim de aparitii | |||
for i in range(len(nr_alfabet)): | |||
if nr_alfabet[i] == max_aparitii and i >= 97: | |||
# parcurgem sirul, daca gasim caracterul cu numar maxim de aparitii si e o litera il afisam | |||
print(chr(i)) | |||
return | |||
if __name__ == '__main__': | |||
sir_caractere = input("Introduceti sirul de caractere: ") # citirea sirului | |||
if verificare(sir_caractere): # verificarea datelor de intrare | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
frecventa(sir_caractere) # apelul functiei de rezolvare | |||
else: | |||
print("Datele introduse nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> |
Latest revision as of 13:19, 4 May 2023
Cerința[edit | edit source]
Să se scrie un program care citește un șir de caractere și afișează litera mică cel mai des întâlnită în șir.
Date de intrare[edit | edit source]
Programul citește de la tastatură un șir de cel mult 255 caractere.
Date de ieșire[edit | edit source]
Programul afișează pe ecran litera mică cel mai des întâlnită în șir.
Restricții și precizări[edit | edit source]
- - șirul conține litere mari și mici ale alfabetului englez, cifre și spații
- - dacă șirul conține mai multe litere cu număr maxim de apariții, se va fișa prima în ordine alfabetică
Exemplu 1[edit | edit source]
- Intrare
- In 12 mergem la munte
- Ieșire
- e
Explicație[edit | edit source]
- Litera e apare în șir de 3 ori. Tot de 3 ori apare și litera m, dar e este prima în ordine alfabetică.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0138 Frecventa
def verificare(sir_chr): # functia de validare a datelor de intrare
for caracter in sir_chr: if 122 < ord(caracter) < 97: if ord(caracter) != ord(" "): # caracterul trebuie sa fie litera sau spatiu return False
return True
def frecventa(sir):
nr_alfabet = [] # vectorul de frecventa in care numaram fiecare litera din alfabet for i in range(123): nr_alfabet.append(0)
for caracter in sir: # numaram fiecare litera din sir in vectorul de frecventa nr_alfabet[ord(caracter)] += 1
max_aparitii = max(nr_alfabet[97:]) # aflam numarul maxim de aparitii
for i in range(len(nr_alfabet)): if nr_alfabet[i] == max_aparitii and i >= 97: # parcurgem sirul, daca gasim caracterul cu numar maxim de aparitii si e o litera il afisam print(chr(i)) return
if __name__ == '__main__':
sir_caractere = input("Introduceti sirul de caractere: ") # citirea sirului
if verificare(sir_caractere): # verificarea datelor de intrare print("Datele introduse corespund restricțiilor impuse.") frecventa(sir_caractere) # apelul functiei de rezolvare else: print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>