w3resource

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:

Python: Test whether the given strings are palindromes.

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:

Flowchart: Python - Test whether the given strings are palindromes.

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:

Flowchart: Python - Test whether the given strings are palindromes.

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.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

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://w3resource.com/python-exercises/puzzles/python-programming-puzzles-12.php