题目:
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
代码:
const int MAX_BITSISE_OF_NUM = 20;
class Solution {
public:
bool queryString(string S, int N) {
for (int i = 1; i <= N; i++) {
bitset<MAX_BITSISE_OF_NUM> bitvec(i);
string temp = bitvec.to_string();
temp.erase(0, temp.find_first_of('1'));
if (S.find(temp) == S.npos) return false;
}
return true;
}
};
想法:
如果复杂的方法觉得不好写,那写个思路简单的,