Design Bitset LeetCode solution in Java

1
class Bitset {
2
int size;
3
Set<Integer> one = new HashSet<>();
4
Set<Integer> zero = new HashSet<>();
5

6
public Bitset(int size) {
7
this.size = size;
8
for (int i = 0; i < size; i++) zero.add(i);
9
}
10

11
public void fix(int idx) {
12
one.add(idx);
13
zero.remove(idx);
14
}
15

16
public void unfix(int idx) {
17
one.remove(idx);
18
zero.add(idx);
19
}
20

21
// swapping object's referrence is O(1)
22
public void flip() {
23
Set<Integer> s = one;
24
one = zero;
25
zero = s;
26
}
27

28
public boolean all() {
29
return one.size() == size;
30
}
31

32
public boolean one() {
33
return one.size() >= 1;
34
}
35

36
public int count() {
37
return one.size();
38
}
39

40
public String toString() {
41
StringBuilder sb = new StringBuilder();
42
for (int i = 0; i < size; i++) {
43
if (one.contains(i)) sb.append("1");
44
else if (zero.contains(i)) sb.append("0");
45
}
46
return sb.toString();
47
}
48
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0