Leetcode 1461. 检查一个字符串是否包含所有长度为 K 的二进制子串
给你一个二进制字符串 s 和一个整数 k 。如果所有长度为 k 的二进制字符串都是 s 的子串,请返回 true ,否则请返回 false 。
截取每个长度为 k 的字符串,加入 Set 中,它包含所有的长度为 k 的二进制字符串,那么 set 的大小就是 2^k。
完整代码
class Solution {public boolean hasAllCodes(String s, int k) {Set<String> set = new HashSet<String>();int count = (int) Math.pow(2, k);int n = s.length();for (int i = k; i <= n; i++) {set.add(s.substring(i - k ,i));if (set.size() == count) return true;}return false;}
}