当前位置: 首页 > 网络应用技术

LeetCode1461。检查字符串是否包含所有尺寸K(Python)的所有二进制代码

时间:2023-03-07 22:38:10 网络应用技术

  给定二进制字符串s和一个整数k,如果所有长度k的代码都是s的子字符串,则返回true。否则。返回false。

  示例1:

  示例2:

  示例3:

  笔记:

  根据问题的含义,给出了二进制字符串S和一个整数K。如果每个长度k的二进制代码是s的子屈曲,则返回true。否则,返回false。

  实际上,根据常规暴力解决方案,我们发现所有K长度的所有二元字符串。第二个循环确定是否在s中,但这显然是加班的,因为时间复杂性是o(n^2 2to。我们可以从另一个角度考虑这个问题。无论如何,我们已经知道,我们已经知道子的长度- 我们想要找到的是k,并且必须有2^k个不同的子弦。我们只需要从左到右的长度k中穿越s。子字符串将其放置在使用的集合中。最后。,只要收集长度为2^k,发现子线的返回true,否则它们返回false。

  时间复杂性为O(n*k),遍历S为O(n),设置为重复使用sub -String Hash为O(K),并且空间复杂性为O(n)。

  https://leetcode.com/prblems/check-if-a-string-contains- binary-codes-size-k/

  您的支持是我最大的动力

  原始:https://juejin.cn/post/7103709645755121678