Skip to content

Commit ddd0c4e

Browse files
solves prime number of set bits in binary representation
1 parent acf1afb commit ddd0c4e

3 files changed

+47
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@
209209
| 748 | [Shortest Completing Word](https://leetcode.com/problems/shortest-completing-word) | [![Java](assets/java.png)](src/ShortestCompletingWord.java) [![Python](assets/python.png)](python/shortest_completing_word.py) |
210210
| 758 | [Bold Words in String](https://leetcode.com/problems/bold-words-in-string) | |
211211
| 760 | [Find Anagram Mappings](https://leetcode.com/problems/find-anagram-mappings) | |
212-
| 762 | [Prime Number of Set Bits in Primary Representation](https://leetcode.com/problems/prime-number-of-set-bits-in-binary-representation) | |
212+
| 762 | [Prime Number of Set Bits in Primary Representation](https://leetcode.com/problems/prime-number-of-set-bits-in-binary-representation) | [![Java](assets/java.png)](src/PrimeNumberOfSetBitsInBinaryRepresentation.java) [![Python](assets/python.png)](python/prime_number_of_set_bits_in_binary_representation.py) |
213213
| 766 | [Toeplitz Matrix](https://leetcode.com/problems/toeplitz-matrix) | |
214214
| 771 | [Jewels and Stones](https://leetcode.com/problems/jewels-and-stones) | |
215215
| 783 | [Minimum Distance Between BST Nodes](https://leetcode.com/problems/minimum-distance-between-bst-nodes) | [![Java](assets/java.png)](src/MinimumAbsoluteDifferenceInBST.java) [![Python](assets/python.png)](python/minimum_distance_between_bst_nodes.py) |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
def __init__(self):
3+
self.isPrime = [
4+
0, 0, 1, 1, 0, 1, 0,
5+
1, 0, 0, 0, 1, 0,
6+
1, 0, 0, 0, 1, 0,
7+
1, 0, 0, 0, 1, 0
8+
]
9+
10+
def countPrimeSetBits(self, left: int, right: int) -> int:
11+
primeSetBits = 0
12+
for number in range(left, right + 1):
13+
if self.isPrime[self.setBits(number)] == 1:
14+
primeSetBits += 1
15+
return primeSetBits
16+
17+
def setBits(self, number: int) -> int:
18+
result = 0
19+
while number > 0:
20+
result += number & 1
21+
number >>= 1
22+
return result
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public class PrimeNumberOfSetBitsInBinaryRepresentation {
2+
private final byte[] isPrime = new byte[] {0, 0, 1, 1, 0, 1, 0,
3+
1, 0, 0, 0, 1, 0,
4+
1, 0, 0, 0, 1, 0,
5+
1, 0, 0, 0, 1, 0
6+
};
7+
8+
public int countPrimeSetBits(int left, int right) {
9+
int primeSetBits = 0;
10+
for (int number = left ; number <= right ; number++) {
11+
if (isPrime[setBits(number)] == 1) primeSetBits++;
12+
}
13+
return primeSetBits;
14+
}
15+
16+
private int setBits(int number) {
17+
int setBits = 0;
18+
while (number > 0) {
19+
setBits += number & 1;
20+
number >>= 1;
21+
}
22+
return setBits;
23+
}
24+
}

0 commit comments

Comments
 (0)