LeetCode 筆記 - 1461. Check If a String Contains All Binary Codes of Size K

題目在此 1461. Check If a String Contains All Binary Codes of Size K

給定一個二進位字串 s 與數字 k,請判斷任何 k 長度的二進位字串是否有在 s

解題思維

在這裡使用了 Set 來幫助我們

最簡單的做法是把每一個 k 長度的 子字串 都放進 Set 裏面
最後看看 Set 的長度是不是等於 2 的 k 次方

比如說 k 等於 3,答案應該要有 2 ^ 3 總共 8

程式碼

1
2
3
4
5
6
7
8
9
10
11
class Solution:
def hasAllCodes(self, s: str, k: int) -> bool:

size = len(s)

check_map = set()

for i in range(size - k + 1):
check_map.add(s[i : i + k])

return len(check_map) == 1 << k

也許你也會想看看