-
Notifications
You must be signed in to change notification settings - Fork 0
/
Binary Representation.py
27 lines (23 loc) · 1.75 KB
/
Binary Representation.py
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
def solution(S):
# Converting binary string to decimal
dec_eq = int(S, 2)
# Initialize operations to 0
count = 0
while dec_eq != 0: # Catering for base case of zero
if is_even(dec_eq):
# Using // instead of / to ensure result is int type and not float
dec_eq = int(dec_eq // 2)
count += 1
else:
dec_eq -= 1
count += 1
return count
# Helper function to test for even/odd numbers
def is_even(number):
return number % 2 == 0
if __name__ == "__main__":
print(solution('011100'))
print(solution('111'))
print(solution('1'))
print(solution('1111010101111'))
print(solution('111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'))