Python: Test whether the given strings are palindromes
Python Programming Puzzles: Exercise-12 with Solution
Write a Python program to check whether the given strings are palindromes or not. Return True otherwise False.
Input: ['palindrome', 'madamimadam', '', 'foo', 'eyes'] Output: [False, True, True, False, False]
Visual Presentation:
Sample Solution-1:
Python Code:
# License: https://bit.ly/3oLErEI
# Define a function named 'test' that takes a list of strings 'strs' as input
def test(strs):
# Use a list comprehension to check if each string in 'strs' is a palindrome (reads the same forwards and backwards)
return [s == s[::-1] for s in strs]
# Create a list of strings 'strs' with specific elements
strs = ['palindrome', 'madamimadam', '', 'foo', 'eyes']
# Print the original list of strings
print("Original strings:")
print(strs)
# Print a message indicating the operation to be performed on the list
print("\nTest whether the given strings are palindromes or not:")
# Print the result of the test function applied to the 'strs' list
print(test(strs))
Sample Output:
Original strings: ['palindrome', 'madamimadam', '', 'foo', 'eyes'] Test whether the given strings are palindromes or not: [False, True, True, False, False]
Flowchart:
Sample Solution-2:
Python Code:
# Define a function named 'test' that takes a list of strings 'strs' as input
def test(strs):
# Initialize an empty list 'results' to store the results of palindrome tests
results = []
# Iterate through each string in 'strs'
for _ in strs:
# Padding each string with spaces on both sides
# By default, the pad_to parameter is 50
s = ' ' * 50 + _ + ' ' * 50
# Initialize variables 'i' and 'j' for indexing the string 's'
i = 0
j = len(s) - 1
# Use a while loop to check if the string 's' is a palindrome
while i < j:
if s[i] != s[j]:
# If characters at positions 'i' and 'j' are not equal, append False to 'results' and break out of the loop
results.append(False)
break
else:
# Increment 'i' and decrement 'j' to compare the next pair of characters
i += 1
j -= 1
else:
# If the while loop completes without a break, append True to 'results'
results.append(True)
# Return the list of results
return results
# Create a list of strings 'strs' with specific elements
strs = ['palindrome', 'madamimadam', '', 'foo', 'eyes']
# Print the original list of strings
print("Original strings:")
print(strs)
# Print a message indicating the operation to be performed on the list
print("\nTest whether the given strings are palindromes or not:")
# Print the result of the test function applied to the 'strs' list
print(test(strs))
Sample Output:
Original strings: ['palindrome', 'madamimadam', '', 'foo', 'eyes'] Test whether the given strings are palindromes or not: [False, True, True, False, False]
Flowchart:
Python Code Editor :
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Find the indexes of numbers, below a given threshold.
Next: Find the strings in a list, starting with a given prefix.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/python-exercises/puzzles/python-programming-puzzles-12.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics