0155 - Cif Max

De la Universitas MediaWiki

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ări

  • 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

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

Intrare
aaaaaa
Ieșire
NU

Rezolvare

#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.")