4259 - PalRec

From Bitnami MediaWiki
Revision as of 18:43, 16 March 2023 by Cata (talk | contribs) (Pagină nouă: == Cerința == Scrieți funcția recursivă cu antetul<br> <code>def PalRec(a, st, dr)</code><br> care primind ca parametri un vector a de numere întregi și doi întregi st și dr, returnează 1 dacă secvența a[st], a[st+1], ..., a[dr] din vector este un palindrom, sau returnează 0 în caz contrar. == Restricții și precizări == * st ≤ dr * Numele funcției este PalRec. * Se recomandă utilizarea recursivității în rezolvarea problemei. De asemenea, se recomandă...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Scrieți funcția recursivă cu antetul
def PalRec(a, st, dr)
care primind ca parametri un vector a de numere întregi și doi întregi st și dr, returnează 1 dacă secvența a[st], a[st+1], ..., a[dr] din vector este un palindrom, sau returnează 0 în caz contrar.

Restricții și precizări

  • st ≤ dr
  • Numele funcției este PalRec.
  • Se recomandă utilizarea recursivității în rezolvarea problemei. De asemenea, se recomandă să nu se folosească alte funcții suplimentare.

Exemple

Dacă a = (3,5,6,5,3,3,5,-1,5), atunci PalRec(a,2,4) = 1 deoarece 5,6,5 este palindrom. PalRec(a,4,7) = 1 deoarece 5,3,3,5 este palindrom. PalRec(a,1,4) = 0 deoarece 3,5,6,5 nu este palindrom.

Important

Soluția propusă va conține doar funcția cerută. Introducerea în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție, care vor duce la depunctarea soluției.

Rezolvare

<syntaxhighlight lang="python"> def PalRec(a, st, dr):

   if st >= dr:
       return 1
   if a[st] != a[dr]:
       return 0
   return PalRec(a, st + 1, dr - 1)

</syntaxhighlight>