0087 - Lungime Maxima

From Bitnami MediaWiki
Revision as of 21:07, 3 January 2024 by Andrada378 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Să se scrie un program care citește mai multe propoziții și determină propoziția de lungime maximă.

Date de intrare

Fișierul de intrare lgmax.in conține pe prima linie un număr natural n, iar pe următoarele n linii câte o propoziție alcătuită din litere ale alfabetului englez și spații.

Date de ieşire

Fișierul de ieșire lgmax.out va conține pe prima linie propoziția de lungime maximă.

Restricţii şi precizări

  • 0<n<100
  • fiecare propoziție va conține cel mult 255 de caractere

Exemplu:

lgmaxin.txt

4

somnoroase pasarele

pe la cuiburi se aduna

se ascund in ramurele

noapte buna

lgmaxout.txt

pe la cuiburi se aduna

Rezolvare

<syntaxhighlight lang="python"> def validare_n(valoare):

   try:
       n = int(valoare)
       if 0 < n < 100:
           return True, n
       else:
           return False, None
   except ValueError:
       return False, None

def validare_propozitie(propozitie):

   if len(propozitie) <= 255:
       return True
   else:
       return False

def main():

   # Deschide fișierul de intrare pentru citire
   with open('lgmaxin.txt', 'r') as input_file:
       # Citește numărul de propoziții
       n_valoare = input_file.readline().strip()
       este_valid_n, n = validare_n(n_valoare)
       if not este_valid_n:
           print("Eroare: Numărul de propoziții nu respectă condițiile.")
           return
       # Inițializează o variabilă pentru propoziția de lungime maximă
       propozitie_maxima = ""
       # Parcurge fiecare propoziție
       for _ in range(n):
           propozitie = input_file.readline().strip()
           # Verifică dacă propoziția curentă are lungimea mai mare decât cea maximă
           if validare_propozitie(propozitie) and len(propozitie) > len(propozitie_maxima):
               propozitie_maxima = propozitie
   # Deschide fișierul de ieșire pentru scriere
   with open('lgmaxout.txt', 'w') as output_file:
       # Scrie propoziția de lungime maximă în fișierul de ieșire
       output_file.write(propozitie_maxima)

if __name__ == "__main__":

   main()

</syntaxhighlight>