(Вдохновлен этой проблемой )
В первоначальной задаче вы должны были сделать горизонтальную молнию, однако, глядя на мою толстовку с капюшоном, моя молния гораздо более вертикальная (и немного сломанная): P
вход
Вам будет предоставлена одна строка ( s
) и пара целых чисел ( a
и b
) в любом формате. Куда:
a < (length-of-s / 2)
b <= ((length-of-s / 2) - (a + 1)) / 6
Вывод и оценка
Ваша программа может быть полной программой или функцией, которая генерирует одну строку с правильным форматированием или массив (по одному элементу в строке), который вы выбираете. Начальные и конечные пробелы и символы новой строки являются необязательными, если все символы выходных данных совпадают. например.
["f r"],["u e"],["l p"],["l p"],["y i"],[" o z "],[" p n "],[" e "]
или
"f r\nu e\nl p\nl p\ny i\n o z \n p n \n e "
приемлемые результаты для тестового примера 1
Стандартные лазейки запрещены, и выигрывает самый короткий код в байтах. Любой ответ без объяснения причин не сможет победить.
объяснение
Чтобы сделать застежку-молнию, вы должны сначала удалить все пробельные символы или символы новой строки из строки. А затем сложите его пополам, как показано ниже (см. Пример теста 1)
abcde fgh ij klmnopqr
становится двумя строками ниже, обратите внимание, что вторая половина перевернута.
abcdefghi
а также rqponmlkj
Затем, начиная с начала каждой строки, мы помещаем один и тот же индексированный символ из каждой подстроки в одну строку с интервалом, определенным следующим образом:
[0] a r -- (a-3) five spaces
[1] b q -- (a-2) three spaces
[2] c p -- (a-1) one space
[3] d -- (a)
[4] o
[5] e
[6] n
etc...
Это делает основу для нашей молнии. Теперь целые числа a
и b
.
a
это расположение нашего почтового индекса. Чтобы определить, где находится застежка-молния, мы используем индекс наших выходных линий в качестве точки, чтобы закрыть нашу молнию. например, квадратный скобки [3]
в моем примере выше, где находится почтовый индекс.
До того, как наша молния достигнет конца, вышеупомянутая молния должна оставаться в промежутке в пять пробелов, пока не достигнет места, a-2
где она закрывается до 3 пробелов и a-1
где она закрывается до 1 пробела. Просто чтобы быть ясно, в приведенном выше примере a = 3
(0-indexed)
b
это количество отверстий в моей молнии. Чтобы создать отверстие в молнии, мы снова разбиваем строку на некоторое расстояние.
Начиная с индексом , например , отверстие , как h
мы увеличиваем интервал h-1
в одном пространстве, h
3 пространства и h+1
обратно в одном пространстве, в результате чего h-2
и h+2
с только один символ в каждой строке , поскольку они считаются частью отверстия.
После застежки-молнии и между каждым из отверстий должен быть зазор в один символ, чтобы наш застежка выглядела полностью соединенной между отверстиями.
Вы можете выбрать индексы отверстий, но все они должны присутствовать в закрытом разделе молнии.
Again using 'abcdefghi' and 'rqponmlkj'
[0] a r -- (open)
[1] b q -- (closing)
[2] c p -- (closing)
[3] d -- zip
[4] o -- gap
[5] e -- start of hole (h-2)
[6] n f -- one space (h-1)
[7] m g -- three spaces (hole h)
[8] l h -- one space (h+1)
[9] k -- end of hole (h+2)
[10] i -- gap
[11] j
Я надеюсь, что все имеет смысл, если не спросить. В ожидании вопросов вы можете заметить, что символ p
в моем втором примере присутствует во второй подстроке, однако появляется в начале его строки, это подразумевается, вы должны следовать последовательности 1-2-1-2- 1-2, взятие символа с каждой половины поворота независимо от его положения на выходе.
Тестовые случаи
"fully open zipper", 7, 0 | "fully closed zipper", 0, 0
fullyope reppizn | fullyclos reppizde
|
f r *Note: i particularly like this | f
u e example as it shows the reversing | r
l p of the second half of the string | u
l p causes the words to wrap from top | e
y i left to the bottom and back up | l
o z the right side | p
p n | l
e | p
| y
| i
| c
| z
| l
| d
| o
| e
| s
- Колонка 1: «тупо длинная непрерывная молния, которая не должна существовать на любой приличной толстовке», 24, 0
- Колонка 2: «Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Mauris faucibus molestie mi. Aliquam nec fringilla ipsum», 15, 5
:
s e | L m
t i | o u
u d | r s
p o | e p
i o | m i
d h | i a
l t | p l
y n | s l
l e | u i
o c | m g
n e | d n
g d | o i
u y | l r
n n | o f
b a | r c
r n | s
o o | e
k t | i
e s | n t
n i | m a
z x | a m
i e | u
p t | e
p n | q
e | t
d | i
r | ,
l | l c
t | A o
u | . n
h | i
o | s
a | m
h | e e
t | c i
s | t t
| e
| s
| t
| s
| u
| l
| r
| o
| a
| m
| d
| s
| i
| u
| p
| b i
| i s
| c c
| u
| i
| a
| n
| f
| g
| s
| e
| i
| l r
| i u
| t a
| .
| M
РЕДАКТИРОВАТЬ: добавлены тестовые случаи
"abcde fgh ij klmnopqr","3","1"
a r
b q
c p
d
o
e
n f
m g
l h
k
i
j