bool substring_is_palindrome(string s, int start, int end)
{
// separate case for substrings of length 0 and 1
if (start >= end) return true;
if (s[start] == s[end])
// test substring that doesn't contain the first and last letters
return substring_is_palindrome(s, start + 1, end - 1);
else
return false;
}
bool is_palindrome(string s)
{
return substring_is_palidrome(s, 0, s.length() - 1);
}