Given a binary string s
and an integer k
.
Return True if every binary code of length k
is a substring of s
. Otherwise, return False.
Example:
Input: s = "00110110", k = 2
Output: true
Explanation: The binary codes of length 2 are "00", "01", "10" and "11". They can be all found as substrings at indicies 0, 1, 3 and 2 respectively.
Approach:
C++
#include <bits/stdc++.h>using namespace std;bool hasAllCodes(string s, int k){unordered_set<string> st;if (k > s.size())return false;for (int i = 0; i <= s.length() - k; i++){st.insert(s.substr(i, k));}if (st.size() == pow(2, k))return true;return false;}int main(){string s = "00110110";int k = 2;if (hasAllCodes(s, k))cout << "true";elsecout << "false";return 0;}
No comments:
Post a Comment