Question

In: Computer Science

A palindrome is a string that reads the same forward and backward, for example, radar, toot,...

A palindrome is a string that reads the same forward and backward, for example, radar, toot, and madam. Your task is to construct a python algorithm to receive as input a string of characters and check whether it is a palindrome using a stack and a queue. Your ADTs contains the following methods:

Queue

  • Queue() – constructor
  • enqueue(e) – enqueue an element
  • dequeue(e) – dequeue an element
  • len() – returns the number of elements in the queue

Stack

  • Stack() - constructor
  • push(e) – adds an element into the stack
  • pop(e) – removes an element of the stack
  • len() – returns the number of elements in the queue

Please explain the solution with details and document the code.

Solutions

Expert Solution

Algorithm:

  1. First of all, we take the input.
  2. Then, we push/insert the characters of the input string to the stack and the queue character-by-character.
  3. After that, we pop() both stack and queue and match character-by-character.
  4. When every character matches, then it means the given string is a palindrome. In other cases, the given string is not a palindrome.
  5. We have maintained a counter to check, whether each character matches or not.

Please refer to the comments of the program for more clarity.


# Declaring the function to check the palindrome
def checkPalindromeOrNot(givenInput):

    stack = []  #Declaring a stack
    queue = []  #Declaring a queue

    # Adding value to stack and queue
    for char in givenInput:
        stack.append(char)  # Adding value to stack
        queue.append(char)  # Adding value to queue

    counter = 0  # Initializing counter with 0

    # Matching the values of stack and queue
    # Stack is last-in and first-out
    # Queue is first-in and first-out

    # When the given string is palindrome then each pop of stack and pop will match
    for i in range(0, len(givenInput)):
        if(stack.pop() == queue.pop(0)):
            counter+=1  # Increasing the counter when characters match

    # Printing the value
    # When counter == length of the given string, then the given string is a palindrome
    if(counter == len(givenInput)):
        print('Input string is a palindrome')
    else:
        print('Input string is not a palindrome')

# Taking the input
givenInput = input()

# Calling the function
checkPalindromeOrNot(givenInput)

Input/Output - Code/Run - 1:

Input/Output - Code/Run - 2:

Input/Output - Code/Run - 3:

Please let me know in the comments in case of any confusion. Also, please upvote if you like.


Related Solutions

A palindrome is a string that reads the same forward and backward, i.e., the letters are...
A palindrome is a string that reads the same forward and backward, i.e., the letters are the same whether you read them from right to left or from left to right.      Examples: radar à is a palindrome Able was I ere I saw Elba à is a palindrome good à not a palindrome Write a java program to read a line of text and tell if the line is a palindrome. Use a stack to read each non-blank character...
Foundation of Computer Science A palindrome is a string that reads the same forward and backward....
Foundation of Computer Science A palindrome is a string that reads the same forward and backward. 1. Describe an algorithm that determines whether a string of n characters is a palindrome. 2. Write its corresponding program using your favorite programming language.
C++: A palindrome is a string that is the same backward as it is forward. For...
C++: A palindrome is a string that is the same backward as it is forward. For example, “tot” and “otto” are rather short palindromes. Write a program that lets a user enter a string and that passes to a bool function a reference to the string. The function should return true if the string is a palindrome and false otherwise. When you do the judgment, capitalization, spaces, and punctuation should be neglected, that is, “Madam, I’m Adam” should test as...
4.A palindrome is a nonempty string over some alphabet that reads the same forward and backward....
4.A palindrome is a nonempty string over some alphabet that reads the same forward and backward. Examples of palindromes are all strings of length 1, civic, racecar, abba,… Give a DP algorithm to find the longest palindrome that is a subsequence of a given input string. What is the running time of your algorithm? (40 points). •Examples: •Given the input “character”, your algorithm should return “carac”. •Given the input “TTATGTGAT”, your algorithm should return “TATGTAT” Python Code only
A palindrome is a word or phrase, which reads the same backward or forward. Write a...
A palindrome is a word or phrase, which reads the same backward or forward. Write a program that prompts the user for a string of characters terminated by a period and determines whether the string (without the period) is a palindrome. IMP: Assume that the input contains only letters and blanks. Assume also that the input is at most 30 characters long. Use an array of characters of size 30 to store the input! Disregard blanks when deciding if the...
In Java A palindrome is a word or sequence of characters which reads the same backward...
In Java A palindrome is a word or sequence of characters which reads the same backward and forward, such as madam, dad, racecar, 5885. In java Write a program that asks user to enter a word and prints if the word is a palindrome or not.
HTML 7.20 A palindrome is a number or a text phrase that reads the same backward...
HTML 7.20 A palindrome is a number or a text phrase that reads the same backward and forward. For example, each of the following five-digit integers is a palindrome: 12321, 55555, 45554 and 11611. Write a script that reads in a five-digit integer and determines whether it’s a palindrome. If the number is not five digits long, display an alert dialog indicating the problem to the user. Allow the user to enter a new value after dismissing the alert dialog....
A palindrome is a word or a phrase that is the same when read both forward and backward.
6.7 LAB: PalindromeA palindrome is a word or a phrase that is the same when read both forward and backward. Examples are: "bob," "sees," or "never odd or even" (ignoring spaces). Write a program whose input is a word or phrase, and that outputs whether the input is a palindrome.Ex: If the input is:bobthe output is:bob is a palindromeEx: If the input is:bobbythe output is:bobby is not a palindromeHint: Start by removing spaces. Then check if a string is equivalent to it's reverse.This is my code:s =...
In C++: This is the problem: [(1)] A palindrome is a string that reads the same...
In C++: This is the problem: [(1)] A palindrome is a string that reads the same forwards as backwards. Using only a fixed number of stacks and queues, the stack and queue ADT functions, and a fixed number of int and char variables, write an algorithm to determine if a string is a palindrome. Assume that the string is read from standard input one character at a time. The algorithm should output true or false as appropriate [(2)] Let Q...
JAVA Palindrome Detector A palindrome is any word, phrase, or sentence that reads the same forward...
JAVA Palindrome Detector A palindrome is any word, phrase, or sentence that reads the same forward or backward. Here are some well-known palindromes: Able was I, ere I saw Elba A man, a plan, a canal, Panama Desserts, I stressed Kayak Write a boolean method that users recursion to determine where a String argument is a palindrome. The method should return true if the argument reads the same forward and backward. Demonstrate the method in a program. Include the following...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT