Design Bitset LeetCode solution in Python

1
# Runtime: 1967 ms (Top 8.78%) | Memory: 45.4 MB (Top 61.95%)
2
class Bitset(object):
3

4
def __init__(self, size):
5
self.a = 0
6
self.size = size
7
self.cnt = 0
8

9
def fix(self, idx):
10
if self.a & (1 << idx) == 0:
11
self.a |= 1 << idx
12
self.cnt += 1
13

14
def unfix(self, idx):
15
if self.a & (1 << idx):
16
self.a ^= 1 << idx
17
self.cnt -= 1
18

19
def flip(self):
20
self.a ^= (1 << self.size) - 1
21
self.cnt = self.size - self.cnt
22

23
def all(self):
24
return self.cnt == self.size
25

26
def one(self):
27
return self.a > 0
28

29
def count(self):
30
return self.cnt
31

32
def toString(self):
33
a = bin(self.a)[2:]
34
return a[::-1] + "0" * (self.size - len(a))

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0