给定二进制字符串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