0088 - Palindrom: Difference between revisions

From Bitnami MediaWiki
No edit summary
Tag: visualeditor
Tag: visualeditor
 
Line 53: Line 53:
     file_in = open("palindromin.txt")      # declararea fisierelor
     file_in = open("palindromin.txt")      # declararea fisierelor
     file_out = open("palindromout.txt", "w")    # declararea fisierelor out trebuie cu optiunea w (write)
     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:
     try:
         numar_cuvinte = int(file_in.readline())    # citirea lui n
         numar_cuvinte = int(file_in.readline())    # citirea lui n

Latest revision as of 19:22, 2 May 2023

Cerința[edit]

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

Date de intrare[edit]

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]

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]

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

Exemplu 1[edit]

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


Exemplu 2[edit]

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


Rezolvare[edit]

<syntaxhighlight lang="python" line="1">

  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)
  1. 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>