Menu
Coddy logo textTech

Поиск закономерностей

Часть раздела Основы путешествия по Ruby на Coddy — урок 87 из 88.

challenge icon

Задание

Легко

Прочитайте строку из входных данных и найдите наименьший повторяющийся паттерн, из которого состоит вся строка.

Допустимый паттерн должен:

  • Иметь длину, на которую нацело делится общая длина строки
  • При повторении соответствующее количество раз в точности воссоздавать исходную строку

Если строка состоит из повторяющегося паттерна, выведите этот наименьший паттерн. Если повторяющегося паттерна не существует, выведите исходную строку.

Чтобы проверить, подходит ли паттерн, вы можете использовать умножение строк: pattern * count создает новую строку, повторяя паттерн.

Например, если на вход подается abcabcabc, результатом должно быть:

abc

Если на вход подается xyxyxyxy, результатом должно быть:

xy

Если на вход подается aaaa, результатом должно быть:

a

Если на вход подается hello, результатом должно быть:

hello

Если на вход подается abcdef, результатом должно быть:

abcdef

Попробуйте сами

# Прочитать входную строку
s = gets.chomp

# TODO: Напишите свой код ниже
# Найти наименьший повторяющийся шаблон, который образует всю строку
# Подсказка: Проверьте длины шаблонов, которые делятся нацело на длину строки
# Используйте умножение строк (шаблон * количество), чтобы проверить, подходит ли шаблон

result = s  # Замените это вашим решением

# Вывести результат
puts result

Все уроки раздела Основы