给定一个二进制字符串 s
和一个正整数 n
,如果对于 [1, n]
范围内的每个整数,其二进制表示都是 s
的 子字符串
,就返回 true
,否则返回 false
。
子字符串
是字符串中连续的字符序列。
示例 1:
输入:s = "0110", n = 3
输出:true
示例 2:
输入:s = "0110", n = 4
输出:false
提示:
- 1 <= s.length <= 1000
- s[i] 不是 '0' 就是 '1'
- 1 <= n <= 109
来源:力扣(LeetCode)
题解
点击查看代码
class Solution {
public boolean queryString(String s, int n) {
//遍历求解
//已知若x为s的子串,x/2也是s的子串
//所以只需要遍历求解[n/2,n]的数就行
for(int i = n; i > n / 2; i--){
if(!s.contains(Integer.toBinaryString(i))){
return false;
}
}
return true;
}
}