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'