Если вы когда-нибудь пытались добавить метки к действительно плотному графику, то поймете, что иногда метки накладываются друг на друга, что затрудняет их чтение. Мы собираемся сделать что-то подобное, но в 1D.
Входными данными будет последовательность (label, x-coordinate)
пар, а выходными данными будет результат отрисовки каждой точки и метки в указанном порядке. Звездочка, *
представляющая точку, должна быть помещена в заданную x-координату и должна следовать метка. Любые существующие символы будут перезаписаны.
Например, если вход был
Hello 0
World 8
Fizz 3
Buzz 5
PPCG 16
X 9
Тогда произойдет следующее:
*Hello
*Hello *World
*He*Fizz*World
*He*F*Buzzorld
*He*F*Buzzorld *PPCG
*He*F*Buz*Xrld *PPCG
Последняя строка должна быть выведена.
Правила ввода / вывода
Вход может состоять из любого количества пар. Каждая метка будет состоять только из прописных и строчных букв, а длина метки будет составлять не более 127 символов. Каждая x-координата будет между 0 и 127 включительно.
Входные данные могут быть в любом удобном формате списка или строки, так что пары являются однозначными и метки / x-координаты чередуются на входе. Например, формат как
[("Hello", 0), ("World", 8) ...]
или[0 "Hello" 8 "World" ...]
хорошо. Однако вы не можете использовать два отдельных списка меток и x-координат.Функции и полные программы в порядке.
Любые пятна, не покрытые этикеткой, должны быть обозначены пробелом. Тем не менее, не может быть никаких посторонних начальных или конечных пробелов, кроме одного необязательного конечного перевода строки.
Примеры
Входные данные:
OneLabel 10
Выход:
*OneLabel
Входные данные:
Heathrow 0
Edinburgh 2
London 4
Liverpool 6
Oxford 8
Выход:
*H*E*L*L*Oxfordl
Входные данные:
alpha 20
beta 4
gamma 57
delta 3
epsilon 22
zeta 32
eta 53
theta 27
Выход:
*delta *a*epsi*thetazeta *eta*gamma
Входные данные:
abc 5
d 5
abc 10
ABCDEFGHIJKLMNOPQRSTUVWXYZ 127
Выход:
*dbc *abc *ABCDEFGHIJKLMNOPQRSTUVWXYZ
Обратите внимание, что метки и / или X-координаты могут повторяться.