Skip to content

Commit e620421

Browse files
authored
Create convert-to-base-2.py
1 parent 5c8dec2 commit e620421

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

Python/convert-to-base-2.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Time: O(logn)
2+
# Space: O(1)
3+
4+
class Solution(object):
5+
def baseNeg2(self, N):
6+
"""
7+
:type N: int
8+
:rtype: str
9+
"""
10+
result = []
11+
while N:
12+
result.append(str(-N & 1)) # N % -2
13+
N = -(N >> 1) # N //= -2
14+
result.reverse()
15+
return "".join(result) if result else "0"
16+
17+
18+
# Time: O(logn)
19+
# Space: O(1)
20+
class Solution2(object):
21+
def baseNeg2(self, N):
22+
"""
23+
:type N: int
24+
:rtype: str
25+
"""
26+
BASE = -2
27+
result = []
28+
while N:
29+
N, r = divmod(N, BASE)
30+
if r < 0:
31+
r -= BASE
32+
N += 1
33+
result.append(str(r))
34+
result.reverse()
35+
return "".join(result) if result else "0"

0 commit comments

Comments
 (0)