0088 - Palindrom
Cerința[edit | edit source]
Un cuvânt este palindrom dacă se citește la fel în ambele direcții. De exemplu, capac este palindrom.
Date de intrare[edit | edit source]
Fișierul de intrare palindromin.txt conține pe prima linie un număr natural n, iar pe următoarele n linii câte un cuvânt alcătuit din litere mici ale alfabetului englez.
Date de ieșire[edit | edit source]
Fișierul de ieșire palindromout.txt va conține n linii. Linia i va conține valoarea 1 dacă pe linia i+1 din fișierul de intrare se află un palindrom, și 0 în caz contrar.
Restricții și precizări[edit | edit source]
- 0 < n < 100
- fiecare cuvânt va conține cel mult 20 de caractere.
Exemplu 1[edit | edit source]
- palindromin.txt
- 4
- capac
- copil
- aerisirea
- aerare
- palindromout.txt
- Datele introduse corespund restricțiilor impuse.
- 1
- 0
- 1
- 0
Exemplu 2[edit | edit source]
- palindromin.txt
- 189
- palindromout.txt
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0088 Palindrom
def verificare(nr_cuvinte): # functia de verificare a datelor de intrare
if 0 >= nr_cuvinte >= 100: raise ValueError
def palindrom(nr_cuvinte): # functia de rezolvare
for iterator in range(nr_cuvinte): # citim pe rand cuvintele cuvant = file_in.readline() cuvant = cuvant.strip() # scapam de spatii goale sau \n de la capetele cuvantului citit
cuvant_invers = cuvant[::-1] # definim cuvantul citit invers
if cuvant == cuvant_invers: # verificam cuvantul nostru sa fie egal cu cuvantul invers file_out.write("1\n") else: file_out.write("0\n")
if __name__ == '__main__':
file_in = open("palindromin.txt") # declararea fisierelor file_out = open("palindromout.txt", "w") # declararea fisierelor out trebuie cu optiunea w (write)
- din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam
try: numar_cuvinte = int(file_in.readline()) # citirea lui n verificare(numar_cuvinte) # apelul functiei de verificare palindrom(numar_cuvinte) # apelul functiei de rezolvare except ValueError: file_out.write("Datele de intrare nu corespund restrictiilor impuse.")
</syntaxhighlight>