Write a python program to find the closest palindrome from a given string

Last update on August 19 2022 21:50:46 (UTC/GMT +8 hours)

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: racecar

Sample 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: 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.

Python: Tips of the Day

Concatenating iterable to a single string:

>>> x = ["python","really", "rocks"] >>> " ".join(x) 'python really rocks'

Last update on August 19 2022 21:50:48 (UTC/GMT +8 hours)

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: 1221

Flowchart:


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: 1221

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: 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'

How do I find the nearest palindrome number in Python?

Next, to find the next palindrome, simply increment the number till your palindrome check is true. Here is how it works: $ python t.py Enter a number: 123 You entered 123, but the next palindrome is 131 $ python t.py Enter a number: 121 Congratulations! 121 is a palindrome.

How do you find the closest palindrome to a given number?

If the number is a single-digit number, the closest palindrome is calculated by decrementing 1 from it. If the number is 10, 100, 1000, and so on, subtract 1 from it to get the closest palindrome.

How do you find the palindrome of a string in Python?

#Define a function def isPalindrome(string): if len(string) < 1: return True else: if string[0] == string[-1]: return isPalindrome(string[1:-1]) else: return False #Enter input string str1 = input("Enter string : ") if(isPalindrome(str1)==True): print("The string is a palindrome.

How do you program a palindrome in Python?

Palindrome Program.
str = 'JaVaJ'.
strstr = str.casefold().
# This string is reverse..
rev = reversed(str).
if list(str) == list(rev):.
print("PALINDROME !").
print("NOT PALINDROME !").

Chủ đề