One of the best solutions in my opinion (simple and readable) is using a stack to reverse the string (can also be done by a recursive reversal method) and then check if it is the same as the original:
in Java:
public static boolean isPalindrome(String str) {
// Just cleaning up in case of white spaces - Might be considered as a palindrome anyway depending on the question definition
str = str.replace(" ", "");
Stack stack = new Stack