#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Sep  3 23:23:38 2025

@author: vincentleprince
"""

c1 = 'laval'
c2 = 'lavil'
c3 = 'esoperesteicietserepose' 

def estPalyndrome(c):
    n = len(c)
    i = 0
    while i < n-1-i:
        if c[i] != c[n-1-i]:
            return False
        i += 1
    return True

#tests :
print(estPalyndrome(c1))
print(estPalyndrome(c2))
print(estPalyndrome(c3))


def estPalyndromeRec(c):
    n = len(c)
    if n < 2:
        return True
    else:
        return (c[0] == c[n-1]) and estPalyndromeRec(c[1:n-1])
    
    
#tests :
print(estPalyndromeRec(c1))
print(estPalyndromeRec(c2))
print(estPalyndromeRec(c3))


def estPalyndromeRecV2(c):
    n = len(c)
    def estPalyndromeRecV2_Aux(c,i,j):
        """ 0 <= i < j <=n
            renvoie True si c[i:j]  est un palyndrome """
        if j-i < 2:
            return True
        else: 
            return (c[i] == c[j-1]) and estPalyndromeRecV2_Aux(c,i+1,j-1)
    return estPalyndromeRecV2_Aux(c,0,n)

#tests :
print(estPalyndromeRecV2(c1))
print(estPalyndromeRecV2(c2))
print(estPalyndromeRecV2(c3))
            
