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

🔗 https://leetcode.com/problems/check-if-a-string-contains-all-binary-codes-of-size-k

题目

  • 给一个字符串 s,由 0 和 1 构成
  • 判断由长度 k 组成的所有二进制编码的字符串,是否都是 s 的 substring

思路

  • rolling hash
  • 滑动窗口长度 k,判断字符串是否可以组成所有 [0, 2^k)

代码

cpp 复制代码
class Solution {
public:
    bool hasAllCodes(string s, int k) {
        if (s.size() < k) return false;
        set<long long> st;
        long long num = 0;
        for (int i = 0; i < k; i++) {
            num = num * 2 + s[i] - '0';
        }
        st.insert(num);
        for (int i = k; i < s.size(); i++) {
            if (s[i-k] == '1') num = num - pow(2, k-1);
            num = num * 2 + s[i] - '0';
            st.insert(num);
        }
        return st.size() == (pow(2, k));        
    }
};
相关推荐
淡海水11 分钟前
02-04-原理篇-GC Roots与对象图遍历
算法·unity·c#·图·gc·遍历·roots
ClickHouseDB14 分钟前
ClickHouse 大规模 OpenTelemetry 数据接入架构的可靠性演进
算法
Shaoshing20 分钟前
BHU 润石工作室 251019自建赛题解
算法
玩AI的奶茶39 分钟前
24GB 显存能跑多大的模型?参数量、精度与显存占用对照表
人工智能·python·算法·ai·aigc·gpu算力·算力租赁
java_nnnn1 小时前
LeetCode刷题双指针(有效三角形的个数+三数之和)Java
算法·leetcode·职场和发展
人工智能培训1 小时前
智能博弈背景下中国AI国防建设的战略价值
大数据·人工智能·算法·重构·生活
flinn_small1 小时前
三分算法:原理、实现与实战应用
数据结构·算法·三分
思茂信息1 小时前
CST软件UV Slice切片后可直接删除指定一侧实体
算法·uv·emc·emi·cst·仿真软件
INGNIGHT2 小时前
944 · 最大子矩阵(前缀和)
数据结构·c++·算法
不要打扰7562 小时前
《房地产经纪操作实务》重点和难点是什么?用哪个题库好
经验分享·职场和发展