LeetCode题解(1461):检查一个字符串是否包含所有长度为K的二进制子串(Python)
发布日期:2021-06-29 19:58:44
浏览次数:3
分类:技术文章
本文共 860 字,大约阅读时间需要 2 分钟。
题目:(中等)
标签:字符串、集合、位运算
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N × K ) O(N×K) O(N×K) | O ( N × K ) O(N×K) O(N×K) | 424ms (69.44%) |
Ans 2 (Python) | O ( N × K ) O(N×K) O(N×K) | O ( N × K ) O(N×K) O(N×K) | 260ms (99.44%) |
Ans 3 (Python) |
解法一:
class Solution: def hasAllCodes(self, s: str, k: int) -> bool: lst = set() for i in range(len(s) - k + 1): lst.add(s[i:i + k]) return len(lst) == 2 ** k
解法二(优化解法一):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KAVFkIiJ-1598616836575)(LeetCode题解(1461)]:截图.png)
class Solution: def hasAllCodes(self, s: str, k: int) -> bool: # 处理字符串长度过短的情况 if len(s) < 2 ** k + 1: return False # 处理其他情况 aim = 2 ** k lst = set() for i in range(len(s) - k + 1): lst.add(s[i:i + k]) if len(lst) == aim: return True return False
转载地址:https://dataartist.blog.csdn.net/article/details/108286202 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月03日 17时29分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
局部敏感哈希Locality Sensitive Hashing归总
2019-04-30
图像检索中为什么仍用BOW和LSH
2019-04-30
图˙谱˙马尔可夫过程˙聚类结构----by林达华
2019-04-30
深度学习读书笔记之AE(自动编码AutoEncoder)
2019-04-30
深度学习读书笔记之RBM
2019-04-30
深度学习word2vec笔记之基础篇
2019-04-30
用pair做优先队列priority_queue元素的例子
2019-04-30
堆优化的Dijkstra算法(邻接表+优先队列+pair)
2019-04-30
Nginx服务问题总结
2019-04-30
基于Vue的微信公众号开发及选型研究
2019-04-30
Vue项目中使用gif.js方法及注意事项
2019-04-30
软件设计的不同模型:瀑布式、快速原型法以及迭代式
2019-04-30
CuPlayer
2019-04-30
不要太在意
2019-04-30
给母亲的信
2019-04-30
jquery手风琴
2019-04-30
sql server 取文件名函数 转载
2019-04-30
jquery获取ul中的第一个li
2019-04-30