Python
Дата строка цифр. Найти закономерность(ключ), как она образована. Не обязательно полное повторение в закономерности
Ключ должен быть кратчайшим из всех возможных ключей, которые могут быть использованы для кодирования сообщений, т. е. когда возможные ключи 12 , 1212, 121212, программа должна вернуть 12.
Пример:
12121212121 - вернет 12
19391 - вернет 1939
19391939193 - вернет 1939

7 Авг 2019 в 19:43
373 +1
0
Ответы
1

Для решения данной задачи можно использовать алгоритм Касис Клеен. Вот пример Python кода:

def find_pattern(s):
n = len(s)
for i in range(1, n // 2 + 1):
if n % i == 0 and s[:i] * (n // i) == s:
return s[:i]
return s
# Примеры
print(find_pattern("12121212121")) # 12
print(find_pattern("19391")) # 1939
print(find_pattern("19391939193")) # 1939

Этот код ищет кратчайший ключ, который может быть использован для кодирования сообщения. Он перебирает все возможные длины ключа от 1 до половины длины строки и проверяет, соответствует ли данная подстрока всей строке. Если находится такая подстрока, то она возвращается как ключ.

20 Апр в 15:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 134 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир