0087 - Lungime Maxima
De la Universitas MediaWiki
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
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()