Given a non-negative palindromic number num containing n number of digits. The problem is to apply at most two swap operations on the number num so that the resultant is the largest possible palindromic number.
Input : 4697557964 Output : 9647557469 In, 4697557964 the highlighted digits were swapped to get the largest palindromic number 9647557469. Input : 54345 Output : 54345 No swapping of digits required.
Approach: If n < 3, then num itself is the largest possible palindromic number. Else calculate mid = (n / 2) – 1. Then create an array rightMax of size (mid + 1). rightMax[i] contains the index of the greatest digit which is on the right side of num[i] and also greater than num[i] and 0 <= i <= mid. If no such digit exists then rightMax[i] = -1. Now, traverse the rightMax array from i = 0 to m, and find the first element having rightMax[i] != -1. Perform the swap(num[i], num[rightMax[i]]) and swap(num[n – i – 1], num[n – rightMax[i] – 1]) operations and break.
Largest Palindrome: 9647557469
Time Complexity: O(n).
Auxiliary Space: O(n).
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Largest even number that can be formed by any number of swaps
- Longest Palindromic Substring using Palindromic Tree | Set 3
- Make palindromic string non-palindromic by rearranging its letters
- Minimum cuts required to convert a palindromic string to a different palindromic string
- Next higher number using atmost one swap operation
- Minimum number of swaps to make two binary string equal
- Largest palindromic number by permuting digits
- Largest palindromic number in an array
- Maximum length prefix such that frequency of each character is atmost number of characters with minimum frequency
- Find the count of palindromic sub-string of a string in its sorted form
- Minimum swaps to make two strings equal by swapping only with third string
- Largest palindromic prime in an array
- Find the lexicographically largest palindromic Subsequence of a String
- Largest palindromic string possible from given strings by rearranging the characters
- Maximum number formed from array with K number of adjacent swaps allowed
- Form the largest number using at most one swap operation
- Longest subsequence having difference atmost K
- Longest suffix such that occurrence of each character is less than N after deleting atmost K characters
- Longest substring with atmost K characters from the given set of characters
- Minimum number of adjacent swaps to convert a string into its given anagram
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.