javarecursionpalindrome

Creating a recursive method for Palindrome


I am trying to create a Palindrome program using recursion within Java but I am stuck, this is what I have so far:

 public static void main (String[] args){
 System.out.println(isPalindrome("noon"));
 System.out.println(isPalindrome("Madam I'm Adam"));
 System.out.println(isPalindrome("A man, a plan, a canal, Panama"));
 System.out.println(isPalindrome("A Toyota"));
 System.out.println(isPalindrome("Not a Palindrome"));
 System.out.println(isPalindrome("asdfghfdsa"));
}

public static boolean isPalindrome(String in){
 if(in.equals(" ") || in.length() == 1 ) return true;
 in= in.toUpperCase();
 if(Character.isLetter(in.charAt(0))
}

public static boolean isPalindromeHelper(String in){
 if(in.equals("") || in.length()==1){
  return true;
  }
 }
}

Can anyone supply a solution to my problem?


Solution

  • Here I am pasting code for you:

    But, I would strongly suggest you to know how it works,

    from your question , you are totally unreadable.

    Try understanding this code. Read the comments from code

    import java.util.Scanner;
    public class Palindromes
    {
    
        public static boolean isPal(String s)
        {
            if(s.length() == 0 || s.length() == 1)
                // if length =0 OR 1 then it is
                return true; 
            if(s.charAt(0) == s.charAt(s.length()-1))
                // check for first and last char of String:
                // if they are same then do the same thing for a substring
                // with first and last char removed. and carry on this
                // until you string completes or condition fails
                return isPal(s.substring(1, s.length()-1));
    
            // if its not the case than string is not.
            return false;
        }
    
        public static void main(String[]args)
        {
            Scanner sc = new Scanner(System.in);
            System.out.println("type a word to check if its a palindrome or not");
            String x = sc.nextLine();
            if(isPal(x))
                System.out.println(x + " is a palindrome");
            else
                System.out.println(x + " is not a palindrome");
        }
    }