classBitSet:
def__init__(self, n):
self.a = [False] * n
def__getitem__(self, i):
return self.a[i]
def__setitem__(self, k, v):
self.a[k] = v
def__str__(self):
s = ('01'[x] for x in self.a)
return''.join(s)
x = BitSet(n)
Creates bitset (containing all zeros) of $n bits (rounded up to the nearest multiple of 8). To extend it, just set another 0 (or 1) bit at the new width you want.
class BitSet:
def __init__(self, n):
self.a = [False] * n
def __getitem__(self, i):
return self.a[i]
def __setitem__(self, k, v):
self.a[k] = v
def __str__(self):
s = ('01'[x] for x in self.a)
return ''.join(s)
x = BitSet(n)