0088 - Palindrom: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 29: Line 29:
<br>
<br>
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line="1">
# 0088 Palindrom
# 0088 Palindrom
def verificare(nr_cuvinte):
def verificare(nr_cuvinte):         # functia de verificare a datelor de intrare
     if 0 >= nr_cuvinte >= 100:
     if 0 >= nr_cuvinte >= 100:
         raise ValueError
         raise ValueError




def palindrom(nr_cuvinte):
def palindrom(nr_cuvinte):         # functia de rezolvare
     for iterator in range(nr_cuvinte):
     for iterator in range(nr_cuvinte):     # citim pe rand cuvintele
         cuvant = file_in.readline()
         cuvant = file_in.readline()
         cuvant = cuvant.strip()
         cuvant = cuvant.strip()             # scapam de spatii goale sau \n de la capetele cuvantului citit


         cuvant_invers = cuvant[::-1]
         cuvant_invers = cuvant[::-1]       # definim cuvantul citit invers


         if cuvant == cuvant_invers:
         if cuvant == cuvant_invers:         # verificam cuvantul nostru sa fie egal cu cuvantul invers
             file_out.write("1\n")
             file_out.write("1\n")
         else:
         else:
Line 51: Line 51:
if __name__ == '__main__':
if __name__ == '__main__':


     file_in = open("palindromin.txt")
     file_in = open("palindromin.txt")       # declararea fisierelor
     file_out = open("palindromout.txt", "w")
     file_out = open("palindromout.txt", "w")    # declararea fisierelor out trebuie cu optiunea w (write)


     try:
     try:
         numar_cuvinte = int(file_in.readline())
         numar_cuvinte = int(file_in.readline())     # citirea lui n
         verificare(numar_cuvinte)
         verificare(numar_cuvinte)                   # apelul functiei de verificare
         palindrom(numar_cuvinte)
         palindrom(numar_cuvinte)                   # apelul functiei de rezolvare
     except ValueError:
     except ValueError:
         file_out.write("Datele de intrare nu corespund restrictiilor impuse.")
         file_out.write("Datele de intrare nu corespund restrictiilor impuse.")
       
</syntaxhighlight>
</syntaxhighlight>

Revision as of 19:15, 2 May 2023

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

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