Certo che l'errore c'e' .
Pensa bene:
usi due indici: 0 e n-1. Siano 'bgn=0' e 'end=n-1'.
Quindi confronti v[bgn] con v[end]
i t o p i n o n a v e v a n o n i p o t i
^ . . . . . . . . . . . . . . . . . . . ^
ora i due caratteri sono uguali. Cosa devi fare? Spostare i
due indici!
i t o p i n o n a v e v a n o n i p o t i"
. ^ . . . . . . . . . . . . . . . . . ^ .
Capito l'inghippo?
Consiglio: benche' il C/C++ permetta l'aritmetica dei puntatori, alla lunga,
sopprattutto per mantenere il codice comprensibile, conviene
non modificare mai il puntatore, ma utilizzare solo gli indici.
Quindi, in questo caso, evitare l'espressione 'v+1': mooolto meglio, se proprio non se ne puo' fare ameno, usare '&v[1]'. E' molto piu' evidente quello che si sta' intendendo