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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode题解(0486):预测赢家(Python)
下一篇:LeetCode题解(1456):字符串的定长子串中元音的最大数目(Python)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月03日 17时29分13秒