C'è un altro errore...non c'è la condizione di uscita dalla ricorsione nel caso in cui uno dei confronti tra le lettere sia sbagliato, la versione giusta dovrebbe essere questa:
Ariciaocodice:bool is_palindrome(string s) { if(s.length()<=1) { return true; } else { static int start=0; static int end=s.length()-1; cout << start <<" "<<end <<endl; if(s[start]!=s[end])return false; else { while(start<end){ start++; end--; if(is_palindrome(s)==false)return false; } } } }![]()