Я определяю четыре стиля коробки:
+-----+ ooooooo ^^^^^ *******
| 1 | o 2 o < 3 > * 4 *
| | o o < > * *
+-----+ ooooooo vvvvv *******
Напишите программу или функцию с заданным целым числом и строкой, которая найдет один из вышеперечисленных блоков внутри строки и изменит свой стиль на стиль блоков, запрошенный пользователем. Например:
1
This is a test document.
It ********* has
no *purpose* other than
dem*onstrat*ion.
*********
становится:
This is a test document.
It +-------+ has
no |purpose| other than
dem|onstrat|ion.
+-------+
Вы можете предположить, что вход содержит ровно одно действительное поле размером не менее 3х3. Ваш код должен игнорировать неполные / неправильные поля:
ooooooooooooooooooooooooooooooooo
o This is not a box. o This is. o
ooooooooooo ooooo ooooooooooooooo
^^^^ ######
<NOPE> #NOPE#
vVVv ######
Самый короткий код в байтах побеждает.
o This is. o
иo This is no
(с линииo
выше и ниже, конечно).Ответы:
Юлия,
995818713613 байтРазгромленный с объяснением:
Вопреки тому, как я впервые подошел к нему, этот код будет корректно работать только для «действительных» чисел типа - 1, 2, 3 или 4. Он разделен на две части - средство поиска ящика и заменитель ящика. Код функции
f(t)
поиска ящиков использует регулярное выражение для определения местоположения вершин и, для более простых ящиков (типы 2 и 4), основания.Первое регулярное выражение - это самый простой способ найти бокс-топы. Вот логика этого:
Код используется так:
Печать не включена в функцию, так как формат вывода не указан - я просто возвращаю строку, которую вы можете распечатать позже, как показано выше.
источник