4259 - PalRec
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>