当前位置: 首页> 汽车> 新车 > 网店装修设计与制作用什么软件_太原建站公司有哪些_今日重大新闻头条十条_石家庄百度seo

网店装修设计与制作用什么软件_太原建站公司有哪些_今日重大新闻头条十条_石家庄百度seo

时间:2025/8/26 10:04:07来源:https://blog.csdn.net/qq_67733273/article/details/143425883 浏览次数: 0次
网店装修设计与制作用什么软件_太原建站公司有哪些_今日重大新闻头条十条_石家庄百度seo

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

长度为k的二进制子串所有取值的集合为[0, sum(k)],其中sum(k)为1 + 2 + 4 + … + 1 << (k - 1)

我们只需要创建一个长度为sum(k) + 1的数组 f ,其中下标为 i 的元素用来标记字符串中子串取值为 i 是否不存在

我们只需要遍历字符串中所有长度为 k 的子串,然后将其数组 f 中二进制值标记为存在

最后

  • 如果数组 f 中存在子串中不存在的二进制值,则结果为false
  • 如果数组 f 中子串二进制值都存在,则结果为true

题解代码

impl Solution {pub fn has_all_codes(s: String, k: i32) -> bool {if k as usize >= s.len() {return false;}let s = s.as_bytes();let mut max_val = 0;let mut sum = 0;for i in 0..k as usize {max_val += 1 << i;if s[i] == b'1' {sum += 1 << i;}}let mut f = vec![true; max_val + 1];f[sum] = false;for i in k as usize..s.len() {if s[i - k as usize] == b'1' {sum -= 1;}sum >>= 1;if s[i] == b'1' {sum += 1 << (k - 1);}f[sum] = false;}for ok in f {if ok {return false;}}true}
}

题目链接

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

关键字:网店装修设计与制作用什么软件_太原建站公司有哪些_今日重大新闻头条十条_石家庄百度seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: