-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmaximumOddBinaryNumber.py
More file actions
33 lines (22 loc) · 1.15 KB
/
maximumOddBinaryNumber.py
File metadata and controls
33 lines (22 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Maximum Odd Binary Number
# You 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.
# Example 1:
# Input: s = "010"
# Output: "001"
# Explanation: Because there is just one '1', it must be in the last position. So the answer is "001".
# Example 2:
# 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".
# Answer
def maximumOddBinaryNumber(s):
s_list = list(s)
last_one_index = s.rfind('1')
s_list[last_one_index], s_list[-1] = s_list[-1], s_list[last_one_index]
s_list[:last_one_index] = sorted(s_list[:last_one_index], reverse=True)
return ''.join(s_list)
print(maximumOddBinaryNumber("010"))
print(maximumOddBinaryNumber("01011"))