1461.检查一个字符串是否包含所有长度为 K 的二进制子串:哈希表存放所有长度为k的子串
【LetMeFly】1461.检查一个字符串是否包含所有长度为 K 的二进制子串:哈希表存放所有长度为k的子串
力扣题目链接:https://leetcode.cn/problems/check-if-a-string-contains-all-binary-codes-of-size-k/
给你一个二进制字符串 s 和一个整数 k 。如果所有长度为 k 的二进制字符串都是 s 的子串,请返回 true ,否则请返回 false 。
示例 1:
输入:s = "00110110", k = 2 输出:true 解释:长度为 2 的二进制串包括 "00","01","10" 和 "11"。它们分别是 s 中下标为 0,1,3,2 开始的长度为 2 的子串。
示例 2:
输入:s = "0110", k = 1 输出:true 解释:长度为 1 的二进制串包括 "0" 和 "1",显然它们都是 s 的子串。
示例 3:
输入:s = "0110", k = 2 输出:false 解释:长度为 2 的二进制串 "00" 没有出现在 s 中。
提示:
1 <= s.length <= 5 * 105s[i]不是'0'就是'1'1 <= k <= 20
解题方法:暴力枚举
使用一个哈希表,存放所有长度为$k$的子串。
最后看看哈希表中子串数量是否等于$2^k$。
- 时间复杂度$O((len(s) - k)\times k)$
- 空间复杂度$O((len(s) - k)\times k)$
AC代码
C++
1 | |
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
千篇源码题解已开源
1461.检查一个字符串是否包含所有长度为 K 的二进制子串:哈希表存放所有长度为k的子串
https://blog.letmefly.xyz/2026/02/23/LeetCode 1461.检查一个字符串是否包含所有长度为K的二进制子串/