Python Programming Puzzles: Exercise-93 with Solution
Write a Python program to find the closest palindrome from 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: racecarSample Solution:
Python Code:
#License: //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: racecarFlowchart:
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.
Python: Tips of the Day
Concatenating iterable to a single string:
>>> x = ["python","really", "rocks"] >>> " ".join(x) 'python really rocks'Python Basic - 1: Exercise-139 with Solution
Write a Python program to find the closest palindrome number of a given integer. If there are two palindrome numbers in absolute distance return the smaller number
Sample Solution-1:
Python Code:
def test(n): x = n y = n while True: if str(x) == str(x)[::-1]: return x x -= 1 if str(y) == str(y)[::-1]: return y y += 1 return int(bin(n)[::-1][:-2], 2) n = 120; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n)); n = 321; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n)); n = 43; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n)); n = 1234; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n));Sample Output:
Original number: 120 Closest Palindrome number of the said number: 121 Original number: 321 Closest Palindrome number of the said number: 323 Original number: 43 Closest Palindrome number of the said number: 44 Original number: 1234 Closest Palindrome number of the said number: 1221Flowchart:
Visualize Python code execution:
The following tool visualize what the computer is doing step-by-step as it executes the said program:
Sample Solution-2:
Python Code:
def test(n): result = 0 while n: if str(n-result)==str(n-result)[::-1]: return n-result elif str(n+result)==str(n+result)[::-1]: return n+result result+=1 n = 120; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n)); n = 321; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n)); n = 43; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n)); n = 1234; print("Original number: ", n); print("Closest Palindrome number of the said number: ",test(n));Sample Output:
Original number: 120 Closest Palindrome number of the said number: 121 Original number: 321 Closest Palindrome number of the said number: 323 Original number: 43 Closest Palindrome number of the said number: 44 Original number: 1234 Closest Palindrome number of the said number: 1221Flowchart:
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: Write a Python program to reverse the binary representation of an given integer and convert the reversed binary number into an integer.
Next: Write a Python program to convert all items in a given list to float values.
Python: Tips of the Day
Concatenating iterable to a single string:
>>> x = ["python","really", "rocks"] >>> " ".join(x) 'python really rocks'