链接:https://leetcode-cn.com/problems/binary-string-with-substrings-representing-1-to-n/
把整数转为字符串然后在S中查找即可。只需检查
[
N
2
+
1
,
N
]
[\frac{N}{2}+1,N]
[2N+1,N]的范围,因为
2
∗
i
2*i
2∗i的二进制表示一定包含
i
i
i的二进制表示。
java代码:
class Solution {
public boolean queryString(String S, int N) {
for (int i = N; i >=N/2+1; i--) {
if (!S.contains(Integer.toBinaryString(i)))
return false;
}
return true;
}
}
本文提供了一种高效的方法来解决LeetCode上的一道题目,即判断一个给定的二进制字符串是否包含从1到N所有整数的二进制表示。通过分析,我们发现只需要检查[N/2+1, N]范围内的数,这是因为任何一个数的二倍的二进制表示一定包含该数的二进制表示。文章给出了简洁的Java代码实现。
873

被折叠的 条评论
为什么被折叠?



