0087 - Lungime Maxima

From Bitnami MediaWiki

Cerinţa[edit | edit source]

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

Date de intrare[edit | edit source]

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[edit | edit source]

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

Restricţii şi precizări[edit | edit source]

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

Exemplu:[edit | edit source]

lgmaxin.txt

4

somnoroase pasarele

pe la cuiburi se aduna

se ascund in ramurele

noapte buna

lgmaxout.txt

pe la cuiburi se aduna

Rezolvare[edit | edit source]

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