Given a binary string S (a string consisting only of '0' and '1's) and a positive integer N, return true if and only if for every integer X from 1 to N, the binary representation of X is a substring of S.
Example 1:
Input: S = "0110", N = 3
Output: true
Example 2:
Input: S = "0110", N = 4
Output: false
Note:
1 <= S.length <= 1000
1 <= N <= 10^9
class Solution:
    def queryString(self, S: str, N: int) -> bool:
        st = set()
        
        for size in range(1, len(S)+1):
            for i in range(len(S) - size +1):
                st.add(S[i:i+size])
        
        #print(st)
        
        for i in range(1,N+1):
            #print(bin(i)[2:])
            if not bin(i)[2:] in st:
                
                return False
        
            
        return True
class Solution:
    def queryString(self, S: str, N: int) -> bool:
        st = set()
        
        for size in range(1, len(S)+1):
            for i in range(len(S) - size +1):
                st.add(S[i:i+size])
        
        #print(st)
        
        for i in range(1,N+1):
            #print(bin(i)[2:])
            if not bin(i)[2:] in st:
                
                return False
        
            
        return True