w3resource

Python: Find a palindrome of a given length containing a given string


Generate Palindrome of Specific Length

Write a Python program to generate a palindrome of a given length from a string.

Input:  madam , 7
Output:
madaadam

Input:  madam , 6
Output:
maddam

Input: madam , 5
Output:
maaaam

Input:  madam , 3
Output:
maam

Input:  madam , 2
Output:
mm 

Input: madam , 1
Output:
aa

Sample Solution:

Python Code:

# License: https://bit.ly/3oLErEI

# Function to generate a palindrome of a given length from a string
def test(s, length):
    s_index = 0
    # Calculate the half length of the palindrome
    length_half = (length - (length % 2)) // 2
    ans = ""
    
    # Build the first half of the palindrome
    while len(ans) < length_half:
        ans += s[s_index % len(s)]
        s_index += 1
    
    # Add a middle character if the length is odd
    if length % 2 == 1:
        ans += "a"
    
    # Complete the palindrome by adding the reversed first half
    return ans + ans[::-1]

# Test cases with different string and palindrome lengths
s = 'madam'
length = 7
print("String and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))

s = 'madam'
length = 6
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))

length = 5
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))

length = 3
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))

length = 2
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))

length = 1
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))

Sample Output:

String and length of the palindrome: madam , 7
Palindrome of the said string and length:
madaadam

String and length of the palindrome: madam , 6
Palindrome of the said string and length:
maddam

String and length of the palindrome: madam , 5
Palindrome of the said string and length:
maaaam

String and length of the palindrome: madam , 3
Palindrome of the said string and length:
maam

String and length of the palindrome: madam , 2
Palindrome of the said string and length:
mm

String and length of the palindrome: madam , 1
Palindrome of the said string and length:
aa

Flowchart:

Flowchart: Python - Find a palindrome of a given length containing a given string.

Python Code Editor :

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Separate parentheses groups.
Next: Single digits in numbers sorted backwards and converted to English words.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.