Соня сделала красивую таблицу из одной строки и большого количества столбцов и ушла по делам. Пока никто не видел, её младшая сестра Яна написала в одну из ячеек слово, а в соседние, чуть позже, добавила восклицательные знаки. В каждой ячейке (кроме той, что со словом) — один знак. Всего знаков слева и справа оказалось по столько же, сколько букв в слове маленькой проказницы. Дано слово. Выведи массив, каждый элемент которого — одна заполненная ячейка таблицы после того, как её «поправила» Яна.
Вот подробное решение задачи и пошаговый алгоритм.
Исходные данные:
- Дано слово W. Его длина L = количество букв в W.
- Таблица имеет одну строку и 2L + 1 клеток: слева от слова есть L клеток, справа — L клеток.
- В каждой клетке, кроме той, где лежит слово, стоит ровно один знак. Соседние клетки вокруг слова содержат восклицательные знаки (там по крайней мере две соседние клетки — слева и справа — имеют '!').
- Требуется вывести массив, каждый элемент которого — одна заполненная клетка таблицы после того как Яна «поправила» таблицу.
Пояснение и решение:
1) Определяем L — длину слова W.
2) По условию слева от слова должно быть ровно L клеток, и справа — ровно L клеток.
3) В соседних клетках к слову стоят знаки '!'. По заданию эти соседние клетки обязательно содержат '!'. Остальные клетки также содержат по одному знаку, но знак в них не указан прямым образом.
4) Чтобы получить конкретный допустимый пример заполнения (один из множества возможных), можно заполнить все остальные клетки тем же знаком, что и соседние — '!'. Такой выбор удовлетворяет всем условиям: общее число знаков слева равно L, справа — L, соседние слева и справа — это '!', и в каждой клетке ровно по одному знаку.
5) Таким образом, итоговый массив будет выглядеть так:
- слева: L раз подряд '!'
- затем само слово W
- справа: L раз подряд '!'
Формула вывода:
- Пусть W дано и имеет длину L.
- Выходной массив A имеет длину 2L + 1 и равен:
[ '!', '!', ..., '!', W, '!', '!', ..., '!' ],
где слева стоит ровно L знаков '!', справа тоже L знаков '!'.
Пример:
- Если W = "СЯЗ" (длина 3), то:
A = ['!', '!', '!', 'СЯЗ', '!', '!', '!'].
Заметка:
- Этот вариант является валидным одним из множества решений, потому что на самом деле остальные знаки в неслово-ячейках могли быть любыми по одному знаку. Чтобы получить конкретный одномерный массив, достаточно выбрать какой-нибудь знак для всех пустых клеток. Я привел универсальное и простой фиксированный вариант: заполнить все не-слово клетки знаком '!'.
Если хочешь, могу привести реализацию на языке программирования (например, Python), которая строит такой массив по заданному слову W. Также могу показать альтернативный вариант заполнения (например, оставить другие клетки пустыми или использовать другой знак).