0088 - Palindrom

De la Universitas MediaWiki

Cerința

Un cuvânt este palindrom dacă se citește la fel în ambele direcții. De exemplu, capac este palindrom.

Date de intrare

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

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

0 < n < 100
fiecare cuvânt va conține cel mult 20 de caractere.

Exemplu 1

palindromin.txt
4
capac
copil
aerisirea
aerare
palindromout.txt
Datele introduse corespund restricțiilor impuse.
1
0
1
0


Exemplu 2

palindromin.txt
189
palindromout.txt
Datele de intrare nu corespund restricțiilor impuse.


Rezolvare

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