A palindrome is a string that reads the same forward and backward, such as “radar”. Write a static recursive method that has one parameter of type String and returns true if the argument is a palindrome and false otherwise. Disregard spaces and punctuation marks in the string, and consider upper- and lowercase versions of the same letter to be equal. For example, the following strings should be considered palindromes by your method:
“Straw? No, too stupid a fad, I put soot on warts.”
“xyzcZYx?”
Your method need not check that the string is a correct English phrase or word. Embed the method in a program, and test it. For an additional challenge, use your palindrome-checking method with the file of English words described in
Solution to Project 1
Want to see the full answer?
Check out a sample textbook solutionChapter 11 Solutions
Java: An Introduction to Problem Solving and Programming (8th Edition)
Additional Engineering Textbook Solutions
Digital Fundamentals (11th Edition)
Differential Equations: Computing and Modeling (5th Edition), Edwards, Penney & Calvis
Programming in C
Starting Out with Programming Logic and Design (4th Edition)
Starting Out with C++: Early Objects
Web Development and Design Foundations with HTML5 (8th Edition)
- Write recursive definition of a method named Combinations that takes two integers n and r as parameters and returns the number of unique combinations of r items from a group of n items. Number of combinations C(n,r) for the given parameters n and r can be computed using the equation: ?(?,?) = ?!?! ∗ (? − ?)! For example, ?(4,3) = ?! should return 4. ?! ∗ (?)! Take the input from the user and make sure that the input is valid. using C++arrow_forwardWrite a recursive method thatfinds the number of occurrences of a specified letter in a string using the followingmethod header: public static int count(String str, char a) For example, count("Welcome", 'e') returns 2. Write a test program thatprompts the user to enter a string and a character, and displays the number ofoccurrences for the character in the string.arrow_forwardThe nth harmonic number is defined non-recursively as H(n) = 1+1/2+1/3+1/4+⋯+1/n Come up with a recursive definition and use it to guide you to write a method definition for a double-valued method named “harmonic” that accepts an int parameter n and recursively calculates and returns the nth harmonic number. Write a test program that displays the harmonic numbers, H(n), for n = 1,2,3,⋯,10.arrow_forward
- Write a RECURSIVE method called “sequence” that takes a single int parameter (n) and returns the int value of the nth element of the sequence S = 2, 4, 6, 12, 22, 40, 74, 136, 250, 460, … Where S is defined by the recursive formula: For n >= 0S(0) = 2; // Base case 1S(1) = 4; // Base case 2S(2) = 6; // Base case 3S(N) = 2 * ( S(N-1)/2 + S(N-2)/2 + S(N-3)/2)arrow_forwardWrite a recursive method called doubleDigits that accepts an integer n as a parameter and returns the integer obtained by replacing every digit of n with two of that digit. For example, doubleDigits(348) should return 334488. The call doubleDigits(0) should return 0. Calling doubleDigits on a negative number should return the negation of calling doubleDigits on the corresponding positive number; for example, doubleDigits(–789) should return –778899.arrow_forwardYou have a card on which the letter J is written on one side and K on the other. You want to seeall of the possible ways the card will land if you drop it n times. Write a recursive method thatprints each session of dropping the cards with J's and K's. For example if you drop it 4 times in agiven session, all possible ways to drop it are as follows (in exactly the specified order): J J J JJ J J KJ J K JJ J K KJ K J JJ K J KJ K K JJ K K KK J J JK J J KK J K JK J K KK K J JK K J KK K K JK K K Karrow_forward
- Write a program that lists all ways people can line up for a photo (all permutations of a list of strings). The program will read a list of one word names (until -1), and use a recursive method to create and output all possible orderings of those names separated by a comma, one ordering per line. When the input is: Julia Lucas Mia -1 then the output is (must match the below ordering): Julia, Lucas, Mia Julia, Mia, Lucas Lucas, Julia, Mia Lucas, Mia, Julia Mia, Julia, Lucas Mia, Lucas, Juliaarrow_forwardYou have a card on which the letter J is written on one side and K on the other. You want to seeall of the possible ways the card will land if you drop it n times. Write a recursive method thatprints each session of dropping the cards with J's and K's. For example if you drop it 4 times in agiven session, all possible ways to drop it are as follows (in exactly the specified order): (java code)arrow_forwardThe intName method in the "Problem Solving: Stepwise Refinement" section accepted arguments < 1,000. Using a recursive call, extend its range to 999,999. For example an input of 12,345 should return " twelve thousand three hundred forty five". Note that some number names may have extra spaces at the beginning or end. import java.util.Scanner; public class IntegerName { /** Turns a number into its English name. @param number a positive integer < 999,999 @return the name of the number (e.g. "two hundred seventy four") */ public static String intName(int number) { int part = number; // The part that still needs to be converted String name = ""; // The name of the number if (part >= 1000) { // Recursively call intName } if (part >= 100) { name = digitName(part / 100) + " hundred"; part = part % 100; } if (part >= 20) { name = name + " " + tensName(part); part = part % 10; } else if (part >= 10) { name = name + " " + teenName(part); part = 0; } if (part > 0) { name =…arrow_forward
- I have two recursive methods in Java but I want to also implement a test class to see if both of them perform how can I do that? Method 1: Non Tail Recursive public class NonTailRecursiveFactorial { public static long factorial(int n) {if (n == 0) {return 1;}return n * factorial(n - 1);} public static void main(String[] args) {for (int i = 0; i <= 10; i++) {System.out.println(i + "! = " + factorial(i));}}} Method 2: Tail Recursive Method public class TailRecursiveFactorial { public static long factorial(int n) {return factorial(n, 1);} private static long factorial(int n, long accumulator) {if (n == 0) {return accumulator;}return factorial(n - 1, accumulator * n);} public static void main(String[] args) {for (int i = 0; i <= 10; i++) {System.out.println(i + "! = " + factorial(i));}}arrow_forwardI have to write a recursion method that finds the square root of a number by creating more accurate guesses each time. For some reason, my code is not returning any value and is not terminating at my base case. Can you help me see the issue I am having? import java.util.Scanner; /** * Greek's method to approximate the square root of a given number. */ public class SquareRootComputer { publicstaticvoidmain(String[] args) { // this is your tester // read a value from the user and print the results // along with expected value Scannerin=newScanner(System.in); System.out.println("Please input a value whose square root you would like determined: "); doublex=in.nextDouble(); //makes user input the value for x to determine it's square root. USE 91. System.out.println("The square root of "+x+"is: "+squareRoot(x)); System.out.println("Expected square root value of 91 is: 9.539392014."); in.close(); //closes the scanner to prevent any unintended errors. }…arrow_forwardJAVA Write a static recursive method evenFactors that takes as input two positive integers and prints the even factors of the first integer that are greater than or equal to the second integer. For example, evenFactors(18,1) prints 2, 6, and 18, since the even factors of 18 that are greater than or equal to 1 are 2,6, and 18.arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education