0847 - Cuvinte: Difference between revisions
Pagină nouă: == Cerinţa == Se dă un șir de caractere format din cuvinte, separate prin spații. Cuvintele conțin doar litere mici ale alfabetului englez. Afișați, în ordine lexicografică, cuvintele din șir și frecvența lor de apariție. == Date de intrare == Programul citește de la tastatură șirul dat. == Date de ieșire == Programul va afișa pe ecran câte un cuvânt pe o linie, apoi un spațiu, apoi numărul de apariții ale cuvântului. == Restricţii şi precizări == *... |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
; Iesire | ; Iesire | ||
Datele de intrare corespund restrictiilor impuse | |||
ana 1 | ana 1 | ||
are 2 | are 2 | ||
doua 2 | doua 2 | ||
maria 1 | maria 1 | ||
mere 1 | mere 1 | ||
pere 1 | pere 1 | ||
si 1 | si 1 | ||
== Exemplu 2 == | == Exemplu 2 == | ||
Line 35: | Line 36: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
def main(): | def main(): | ||
sir = input("Introduceti sirul de caractere: ") | sir = input("Introduceti sirul de caractere: ") | ||
if len(sir) > 255: | if len(sir) > 255: | ||
print("Datele de intrare nu corespund restrictiilor impuse") | print("Datele de intrare nu corespund restrictiilor impuse") | ||
return | return | ||
cuvinte = sir.split() | cuvinte = sir.split() | ||
if len(cuvinte) > 100: | if len(cuvinte) > 100: | ||
print("Datele de intrare nu corespund restrictiilor impuse") | print("Datele de intrare nu corespund restrictiilor impuse") | ||
return | return | ||
for cuvant in cuvinte: | for cuvant in cuvinte: | ||
if len(cuvant) > 15: | if len(cuvant) > 15: | ||
Line 59: | Line 55: | ||
print("Datele de intrare corespund restrictiilor impuse") | print("Datele de intrare corespund restrictiilor impuse") | ||
frecventa_cuvinte = {} | frecventa_cuvinte = {} | ||
for cuvant in cuvinte: | for cuvant in cuvinte: | ||
if cuvant in frecventa_cuvinte: | if cuvant in frecventa_cuvinte: | ||
Line 69: | Line 63: | ||
frecventa_cuvinte[cuvant] = 1 | frecventa_cuvinte[cuvant] = 1 | ||
for cuvant in sorted(frecventa_cuvinte.keys()): | for cuvant in sorted(frecventa_cuvinte.keys()): | ||
print(cuvant, frecventa_cuvinte[cuvant]) | print(cuvant, frecventa_cuvinte[cuvant]) |
Latest revision as of 19:53, 2 January 2024
Cerinţa[edit | edit source]
Se dă un șir de caractere format din cuvinte, separate prin spații. Cuvintele conțin doar litere mici ale alfabetului englez. Afișați, în ordine lexicografică, cuvintele din șir și frecvența lor de apariție.
Date de intrare[edit | edit source]
Programul citește de la tastatură șirul dat.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran câte un cuvânt pe o linie, apoi un spațiu, apoi numărul de apariții ale cuvântului.
Restricţii şi precizări[edit | edit source]
- șirul dat va avea cel mult 255 de caractere și va conține cel mult 100 de cuvinte
- lungimea unui cuvânt este de cel mult 15 caractere
Exemplul 1[edit | edit source]
- Intrare
maria are doua pere si ana are doua mere
- Iesire
Datele de intrare corespund restrictiilor impuse ana 1 are 2 doua 2 maria 1 mere 1 pere 1 si 1
Exemplu 2[edit | edit source]
- Intrare
abcdefghijklmnop
- Iesire
Datele de intrare nu corespund restrictiilor impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def main():
sir = input("Introduceti sirul de caractere: ")
if len(sir) > 255: print("Datele de intrare nu corespund restrictiilor impuse") return
cuvinte = sir.split()
if len(cuvinte) > 100: print("Datele de intrare nu corespund restrictiilor impuse") return
for cuvant in cuvinte: if len(cuvant) > 15: print("Datele de intrare nu corespund restrictiilor impuse") return
print("Datele de intrare corespund restrictiilor impuse")
frecventa_cuvinte = {}
for cuvant in cuvinte: if cuvant in frecventa_cuvinte: frecventa_cuvinte[cuvant] += 1 else: frecventa_cuvinte[cuvant] = 1
for cuvant in sorted(frecventa_cuvinte.keys()): print(cuvant, frecventa_cuvinte[cuvant])
if __name__ == "__main__":
main()
</syntaxhighlight>