当前位置: 首页 > news >正文

【每日一题】LeetCode 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串

给你一个二进制字符串 \(s\) 和一个整数 \(k\) 。如果所有长度为 \(k\) 的二进制字符串都是 \(s\) 的子串,请返回 true ,否则请返回 false

保证 \(1 \le \mathrm{len}(s) \le 5 \times 10^5, 1 \le k \le 20\)


维护关于所有长度为 \(k\) 的二进制串的桶,枚举 \(s\) 的所有长度为 \(k\) 的子串,并把每个子串放入桶中,最后统计各子串是否均出现了至少一次。

实现上不需要使用 std::string 储存长度为 \(k\) 的串,可以直接用 int 代替。

时间复杂度 \(O(n)\),空间复杂度 \(O(2^k)\)

class Solution {
public:bool hasAllCodes(string s, int k) {int n = s.size();std::vector<int> vis(1 << k);const int b = (1 << k) - 1;int t = 0;for (int i = 0; i < n; ++i) {t = (t << 1 ^ (s[i] == '1')) & b;if (i >= k - 1) {vis[t] = 1;}}return std::count(vis.begin(), vis.end(), 1) == 1 << k;}
};
http://www.jsqmd.com/news/405846/

相关文章:

  • 基于Eureka的大数据服务链路追踪实现方案
  • 借助大数据技术改进电商运营效率
  • 2025科研AI智能体技术趋势:超级计算架构师的3大能力储备
  • 在Windows中用命令行编译c++Windows程序
  • AI原生应用领域个性化定制的核心要点
  • 构建企业级AI税务顾问:优化税收策略与合规
  • 为什么简历用了STAR法则,还是石沉大海?
  • 常见的acill码(2.0版本)
  • 【2026最新】m3u8下载器终极指南 | m3u8文件下载工具实测(附安装包) - xiema
  • python数据库课程思政教学案例库管理系统
  • HBase安全配置:Kerberos认证实战
  • 家庭资产配置方案
  • 大模型推理引擎vLLM(15): Scheduler / Worker整体介绍
  • 大模型推理引擎vLLM(13): 什么是MOE混合专家模型
  • 大模型推理引擎vLLM(14): 什么是MLA多头潜在注意力
  • 2026.2.23:AgentScope框架实战<一>:安装并使用agentscope
  • 【节点】[Matrix2x2节点]原理解析与实际应用
  • JDK下载,安装与配置
  • flex与bison学习之识别计算器的记号
  • flex与bison学习之简易计算器
  • flex与bison学习之一个简单的flex词法分析器
  • 2026年谷歌独立站多语种建站公司/服务商深度评测推荐:五强对比与中立对比助决策 - 深圳昊客网络
  • OpenClaw:2026年爆红的本地优先 AI 智能体引擎全解析
  • CrafterCMS 认证RCE漏洞利用 - Groovy沙箱逃逸 (CVE-2025-6384)
  • flex与bison学习之英式英语转换为美式英语
  • sql注入之文件读写
  • 从入门到实战:构建企业级交通实时路况监控系统的Python爬虫架构指南
  • DenseFramelet-DFD:基于密集框架小波变换和自适应阈值降噪的机械故障诊断方法(MATLAB)
  • 探索导弹六自由度运动模型及其MATLAB/Simulink实现
  • 总结了近期考MOS认证学员问的比较的问题