2384. Largest Palindromic Number

Medium


You are given a string num consisting of digits only.

Return the largest palindromic integer (in the form of a string) that can be formed using digits taken from num. It should not contain leading zeroes.

Notes:

  • You do not need to use all the digits of num, but you must use at least one digit.
  • The digits can be reordered.

 

Example 1:

Input: num = "444947137"
Output: "7449447"
Explanation: 
Use the digits "4449477" from "444947137" to form the palindromic integer "7449447".
It can be shown that "7449447" is the largest palindromic integer that can be formed.

Example 2:

Input: num = "00009"
Output: "9"
Explanation: 
It can be shown that "9" is the largest palindromic integer that can be formed.
Note that the integer returned should not contain leading zeroes.

 

Constraints:

  • 1 <= num.length <= 105
  • num consists of digits.




 class Solution:
    def largestPalindromic(self, num: str) -> str:
        # counting the number of occurrence of each digit
        count = Counter(num)
        # if the occurrence is multiple of 2, we'll take then in descending order and remove if there any leading zero (0)
        res = "".join(count[i] // 2 * i for i in '9876543210').lstrip("0")
        # taking the max of the odd number(s) of occurrence of digit
        mid = max(count[i]%2 * i for i in count)
        return (res+mid+res[::-1]) or "0"

Random Note


  1. Effectively Using Django REST Framework Serializers
  2. How To Use DRF Serializers Effectively in Django
  3. My personal django rest framework serializer notes
  4. How to use DRF serializers effectively during write operations