Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 651
Nightshifterx Avatar asked Dec 06 '10 14:12

Nightshifterx


People also ask

How can you tell if a array is palindrome recursive?

Approach: Base case: If array has only one element i.e. begin == end then return 1, also if begin>end which means the array is palindrome then also return 1. If the first and the last elements are equal then recursively call the function again but increment begin by 1 and decrement end by 1.

How do you detect a recursion palindrome in Python?

def is_palindrome(s): if len(s) < 1: return True else: if s[0] == s[-1]: return is_palindrome(s[1:-1]) else: return False a=str(input("Enter string:")) if(is_palindrome(a)==True): print("String is a palindrome!") else: print("String isn't a palindrome!")

Is palindrome linked list recursive?

Solution Using RecursionIf there is a match, we will go on recursively to check for the rest of the list. At last, if all the calls return true (that conveys match), we can conclude that the given Linked List is a palindrome. Recursively traverse the entire linked list to get the last node as a rightmost node.


1 Answers

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");
    }
}
like image 118
jmj Avatar answered Sep 30 '22 12:09

jmj