1016. Binary String With Substrings Representing 1 To N
leetcode medium
#backtracking#csharp#leetcode#medium#string#tree
Task
Если задана двоичная строка s и положительное целое число n, верните true, если двоичное представление всех целых чисел в диапазоне [1, n] является подстрокой s, или false в противном случае. Подстрока - это непрерывная последовательность символов в строке.
Пример:
Input: s = "0110", n = 3
Output: true
C# solution
matched/originalpublic class Solution {
public bool QueryString(string s, int n) {
for (int i = 1; i <= n; i++) {
string binary = Convert.ToString(i, 2);
if (!s.Contains(binary)) {
return false;
}
}
return true;
}
}C++ solution
auto-draft, review before submit#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public bool QueryString(string s, int n) {
for (int i = 1; i <= n; i++) {
string binary = Convert.ToString(i, 2);
if (!s.Contains(binary)) {
return false;
}
}
return true;
}
}Java solution
matched/originalpublic class Solution {
public boolean queryString(String s, int n) {
for (int i = 1; i <= n; i++) {
String binary = Integer.toBinaryString(i);
if (!s.contains(binary)) {
return false;
}
}
return true;
}
}Python solution
matched/originalclass Solution:
def queryString(self, s: str, n: int) -> bool:
for i in range(1, n + 1):
if bin(i)[2:] not in s:
return false
return trueGo solution
matched/originalfunc queryString(s string, n int) bool {
for i := 1; i <= n; i++ {
binary := strconv.FormatInt(int64(i), 2)
if !strings.Contains(s, binary) {
return false
}
}
return true
}Explanation
Algorithm
Генерация двоичных строк:
Для каждого числа в диапазоне [1, n] сгенерируйте его двоичное представление.
Проверка подстрок:
Проверьте, является ли каждое из двоичных представлений подстрокой строки s.
Возврат результата:
Если все двоичные представления являются подстроками строки s, верните true. В противном случае, верните false.
😎