问题描述
小M有一个二进制字符串 s
,以及一个正整数 n
。小M想知道,对于 [1, n]
范围内的每个整数,其二进制表示是否都是字符串 s
的某个子字符串。一个子字符串是字符串中的连续字符序列。
如果 s
包含 [1, n]
范围内每个整数的二进制表示,返回 true
,否则返回 false
。
测试样例
样例1:
输入:
s = "0110",n = 3
输出:True
样例2:
输入:
s = "1001",n = 4
输出:False
样例3:
输入:
s = "1100101",n = 6
输出:True
public class Main {
public static boolean solution(String s, int n) {
for(int i=1;i<=n;i++){
String str = Integer.toBinaryString(i).toString();
if(!s.contains(str)){
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.println(solution("0110", 3) == true ? 1 : 0);
System.out.println(solution("1001", 4) == false ? 1 : 0);
System.out.println(solution("1100101", 6) == true ? 1 : 0);
}
}