Leetcode 2864

01 Mar 2024 Tech-Post Leetcode

2864. Maximum Odd Binary Number

Problem Statement :

ou are given a binary string s that contains at least one ‘1’.

You have to rearrange the bits in such a way that the resulting binary number is the maximum odd binary number that can be created from this combination.

Return a string representing the maximum odd binary number that can be created from the given combination.

Note that the resulting string can have leading zeros.

Examples :

Example 1

Input: s = "0101"
Output: "1001"
Explanation: One of the '1's must be in the last position. The maximum number that can be made with the remaining digits is "100". So the answer is "1001".

Example 2

Input: s = "010"
Output: "001"
Explanation: Because there is just one '1', it must be in the last position. So the answer is "001".

Constrains :

1 <= s.length <= 100
s consists only of '0' and '1'.
s contains at least one '1'.

Explanation

  An odd bit always has a 1 at LSB. 
  We count no of 1s, and 0s, add single 1 at LSB rest of the 1s at MSB and add zeros in between them.

Solution (Py3) :

    class Solution:
      def maximumOddBinaryNumber(self, s: str) -> str:
        countOfOnes = s.count('1')
        countOfZeros = s.count('0')
        return '1' * (countOfOnes-1) + '0' * countOfZeros + '1'
    
  

Search

    Table of Contents