У меня вчера был этот вопрос на тесте Алгоритмов, и я не могу найти ответ. Это сводит меня с ума, потому что это стоило около 40 баллов. Я полагаю, что большинство класса не решило это правильно, потому что я не придумал решение за последние 24 часа.
Учитывая произвольную двоичную строку длины n, найдите три равномерно распределенные строки внутри строки, если они существуют. Напишите алгоритм, который решает это за время O (n * log (n)).
Таким образом, у подобных строк есть три "равномерно распределенных": 11100000, 0100100100
edit: это случайное число, поэтому оно должно работать на любое число. Примеры, которые я привел, должны были проиллюстрировать «равномерно распределенное» свойство. Таким образом, 1001011 является действительным числом. 1, 4 и 7 равны друг другу.