Binary String With Substrings Representing 1 To N LeetCode solution in C++
1class Solution {2public:3bool queryString(string s, int n) {4unordered_set<int> seen;5int len = s.length();6for (int i = len - 1; i >= 0; i--) {7int num = 0;8for (int j = 1; j <= min(len - i, 31); j++) { // max 31 bit is enough to form positive integer9num = num * 2 + (s[i + j - 1] == '1' ? 1 : 0);10if (0 < num && num <= n) seen.insert(num);11}12if (seen.size() == n) return true;13}14return false;15}16};