0155 - Cif Max: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerința== Scrieţi un program care citeşte de la tastatură un şir de cel mult 60 de caractere (litere mici şi mari ale alfabetului englez, cifre, puncte, virgule şi spaţii) şi afişează pe ecran cifra care apare de cele mai multe ori în şirul citit. ==Date de intrare== Programul citeşte de la tastatură un şir de cel mult 60 de caractere. ==Date de ieșire== Programul va afişa pe ecran cifra care apare de cele mai multe ori în şir. ==Restricții și preciz...
 
No edit summary
 
Line 21: Line 21:
:NU
:NU
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="">
<syntaxhighlight lang="python" line="1">
#0155 - Cif Max
#0155 - Cif Max
def numar_aparitii(sir):
def numar_aparitii(sir):
     sirul = [0] * 10  
     sirul = [0] * 10 # inițializăm o listă de 10 elemente cu valoarea 0, pentru a număra aparițiile cifrelor
     for char in sir:
     for char in sir:
         if char.isdigit():  
         if char.isdigit(): # verificăm dacă litera este o cifră
             sirul[int(char)] += 1  
             sirul[int(char)] += 1 # incrementăm numărul de apariții al cifrei
     return sirul
     return sirul


def sir_maxim(sirul):
def sir_maxim(sirul):
     numar_maxim = max(sirul)  
     numar_maxim = max(sirul) # găsim valoarea maximă din lista de apariții
     if numar_maxim == 0:  
     if numar_maxim == 0: # dacă nu există cifre în șir, returnăm "NU"
         return "NU"
         return "NU"
     for numar in range(10):  
     for numar in range(10): # parcurgem cifrele de la 0 la 9
         if sirul[numar] == numar_maxim:  
         if sirul[numar] == numar_maxim: #  în cazul în care găsim o cifră cu numărul maxim de apariții
             return numar  
             return numar # returnăm acea cifră
 


if __name__ == '__main__':
if __name__ == '__main__':
     sir = input("Introduceți un șir de caractere: ")
     sir = input("Introduceți un șir de caractere: ")
     if len(sir) > 60:
     if len(sir) > 60: # verificarea restricțiilor
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")
     else:
     else:
         sirul = numar_aparitii(sir)
         sirul = numar_aparitii(sir) # calculăm lista de apariții a cifrelor în șir
         cifra_maxima = sir_maxim(sirul)
         cifra_maxima = sir_maxim(sirul) # găsim cifra cu numărul maxim de apariții
         if cifra_maxima == "NU":
         if cifra_maxima == "NU":
             print("NU")
             print("NU")

Latest revision as of 11:09, 21 May 2023

Cerința[edit | edit source]

Scrieţi un program care citeşte de la tastatură un şir de cel mult 60 de caractere (litere mici şi mari ale alfabetului englez, cifre, puncte, virgule şi spaţii) şi afişează pe ecran cifra care apare de cele mai multe ori în şirul citit.

Date de intrare[edit | edit source]

Programul citeşte de la tastatură un şir de cel mult 60 de caractere.

Date de ieșire[edit | edit source]

Programul va afişa pe ecran cifra care apare de cele mai multe ori în şir.

Restricții și precizări[edit | edit source]

  • dacă şirul conţine mai multe cifre cu număr maxim de apariţii si va afişa cea mai mică;
  • dacă şirul nu conţine cifre se va afişa NU;

Exemplul 1[edit | edit source]

Intrare
Voi lua 9,5 la matematica 10 la informatica si 10 la romana
Ieșire
0
Datele de intrare corespund restricțiilor impuse.

Exemplul 2[edit | edit source]

Intrare
aaaaaa
Ieșire
NU

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line="1">

  1. 0155 - Cif Max

def numar_aparitii(sir):

   sirul = [0] * 10  # inițializăm o listă de 10 elemente cu valoarea 0, pentru a număra aparițiile cifrelor
   for char in sir:
       if char.isdigit():  # verificăm dacă litera este o cifră
           sirul[int(char)] += 1  # incrementăm numărul de apariții al cifrei 
   return sirul


def sir_maxim(sirul):

   numar_maxim = max(sirul)  # găsim valoarea maximă din lista de apariții
   if numar_maxim == 0:  # dacă nu există cifre în șir, returnăm "NU"
       return "NU"
   for numar in range(10):  # parcurgem cifrele de la 0 la 9
       if sirul[numar] == numar_maxim:  #  în cazul în care găsim o cifră cu numărul maxim de apariții
           return numar  # returnăm acea cifră


if __name__ == '__main__':

   sir = input("Introduceți un șir de caractere: ")
   if len(sir) > 60:  # verificarea restricțiilor
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       sirul = numar_aparitii(sir)  # calculăm lista de apariții a cifrelor în șir
       cifra_maxima = sir_maxim(sirul)  # găsim cifra cu numărul maxim de apariții
       if cifra_maxima == "NU":
           print("NU")
       else:
           print(cifra_maxima)
           print("Datele de intrare corespund restricțiilor impuse.")

</syntaxhighlight>