Python: Find the closest palindrome
Python Programming Puzzles: Exercise-93 with Solution
Write a Python program to find the closest palindrome to a given string.
Input: cat Output: cac Input: madan Output: madam Input: radivider Output: radividar Input: madan Output: madam Input: abc Output: aba Input: racecbr Output: racecar
Sample Solution:
Python Code:
#License: https://bit.ly/3oLErEI
def test(s):
odd = 0
for i, c in enumerate(s):
if c != s[~i]:
odd += 1
if odd % 2 == 1:
half = odd // 2
pal = "".join((s[i] if i < half else s[~i] for i in range(len(s))))
return pal
else:
half = odd // 2
pal = "".join((s[i] if i <= half else s[~i] for i in range(len(s))))
return pal
s = "cat"
print("Original string:",s)
print("Closest palindrome of the said string:")
print(test(s))
s = "madan"
print("\nOriginal string:",s)
print("Closest palindrome of the said string:")
print(test(s))
s = "radivider"
print("Original string:",s)
print("Closest palindrome of the said string:")
print(test(s))
s = "madan"
print("\nOriginal string:",s)
print("Closest palindrome of the said string:")
print(test(s))
s = "abc"
print("Original string:",s)
print("Closest palindrome of the said string:")
print(test(s))
s = "racecbr"
print("\nOriginal string:",s)
print("Closest palindrome of the said string:")
print(test(s))
Sample Output:
Original string: cat Closest palindrome of the said string: cac Original string: madan Closest palindrome of the said string: madam Original string: radivider Closest palindrome of the said string: radividar Original string: madan Closest palindrome of the said string: madam Original string: abc Closest palindrome of the said string: aba Original string: racecbr Closest palindrome of the said string: racecar
Flowchart:

Visualize Python code execution:
The following tool visualize what the computer is doing step-by-step as it executes the said program:
Python Code Editor :
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Start with a list of integers, keep every other element in place and otherwise sort the list.
Next: Separate parentheses groups.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
Python: Tips of the Day
Maps the values of a list to a dictionary using a function, where the key-value pairs consist of the original value as the key and the result of the function as the value:
Example:
def tips_map_dictionary(itr, fn): ret = {} for a in itr: ret[a] = fn(a) return ret print(tips_map_dictionary([2,4,6], lambda a: a * a))
Output:
{2: 4, 4: 16, 6: 36}
- Weekly Trends
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join
- JavaScript functions Exercises
- Python Tutorial
- Python Array Exercises
- SQL Cross Join
- C# Sharp Array Exercises
We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook