Фон
Представьте себе английский алфавит, написанный в ряд заглавными буквами ABCDEFGHIJKLMNOPQRSTUVWXYZ
. Предположим, у нас есть специальный объектив с переменной шириной, так что при расположении над строкой он показывает некое «окно» алфавита, а буквы вне объектива скрыты от глаз. Кроме того, у этой линзы есть характеристика деформации, так что первая буква внутри линзы, а затем каждая вторая буква в нижнем регистре, но остальные буквы по-прежнему заглавными.
Например, мы могли бы иметь объектив длиной 5 расположен где - то в середине алфавита и мы видим только бы . jKlMn
(опережающий период здесь , чтобы обеспечить пробельные шоу) - обратите внимание , K
и M
по - прежнему капитализируются, в то время как j
, l
и n
все ниже -cased. Когда мы перемещаем этот объектив слева направо по алфавиту, отображаются разные буквы и заглавные буквы. Задача здесь - вывести результирующие буквы, когда линза скользит по алфавиту.
Соревнование
Напишите программу или функцию, которая принимает входное целое число 0 < n < 27
и выводит или возвращает строку (и), которые видны, когда описанная выше линза скользит по алфавиту.
Для значений n
больше чем 1
, объектив начинается с «подвешивания» к левой стороне алфавита, поэтому в A
крайнем правом гнезде объектива отображается только символ. Таким образом, первая строка любого вывода будет одиночной A
, как заглавной, так и строчной, в зависимости от длины объектива.
Аналогично, линза заканчивает скольжение, когда Z
находится в крайнем левом слоте линзы (это означает, что самая последняя строка в любом выводе всегда будет 25 пробелами, за которыми следует строчная буква z
).
Примеры
Входные данные: 1
Выход:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Входные данные: 4
Выход:
A
aB
AbC
aBcD
bCdE
cDeF
dEfG
eFgH
fGhI
gHiJ
hIjK
iJkL
jKlM
kLmN
lMnO
mNoP
nOpQ
oPqR
pQrS
qRsT
rStU
sTuV
tUvW
uVwX
vWxY
wXyZ
xYz
yZ
z
Входные данные: 26
Выход:
A
aB
AbC
aBcD
AbCdE
aBcDeF
AbCdEfG
aBcDeFgH
AbCdEfGhI
aBcDeFgHiJ
AbCdEfGhIjK
aBcDeFgHiJkL
AbCdEfGhIjKlM
aBcDeFgHiJkLmN
AbCdEfGhIjKlMnO
aBcDeFgHiJkLmNoP
AbCdEfGhIjKlMnOpQ
aBcDeFgHiJkLmNoPqR
AbCdEfGhIjKlMnOpQrS
aBcDeFgHiJkLmNoPqRsT
AbCdEfGhIjKlMnOpQrStU
aBcDeFgHiJkLmNoPqRsTuV
AbCdEfGhIjKlMnOpQrStUvW
aBcDeFgHiJkLmNoPqRsTuVwX
AbCdEfGhIjKlMnOpQrStUvWxY
aBcDeFgHiJkLmNoPqRsTuVwXyZ
bCdEfGhIjKlMnOpQrStUvWxYz
cDeFgHiJkLmNoPqRsTuVwXyZ
dEfGhIjKlMnOpQrStUvWxYz
eFgHiJkLmNoPqRsTuVwXyZ
fGhIjKlMnOpQrStUvWxYz
gHiJkLmNoPqRsTuVwXyZ
hIjKlMnOpQrStUvWxYz
iJkLmNoPqRsTuVwXyZ
jKlMnOpQrStUvWxYz
kLmNoPqRsTuVwXyZ
lMnOpQrStUvWxYz
mNoPqRsTuVwXyZ
nOpQrStUvWxYz
oPqRsTuVwXyZ
pQrStUvWxYz
qRsTuVwXyZ
rStUvWxYz
sTuVwXyZ
tUvWxYz
uVwXyZ
vWxYz
wXyZ
xYz
yZ
z
Правила
- Применяются стандартные правила ввода / вывода
- Стандартные лазейки запрещены
- Применяются стандартные правила игры в гольф
- Требуемый начальный пробел, как показано, необходим, чтобы мы знали, где мы находимся в алфавите.
- Каждая строка не может иметь конечные пробелы (как показано - выходные данные не являются прямоугольниками).
- Одиночный завершающий перевод строки не является обязательным.
источник
Ответы:
Pyth, 31 байт
Попробуйте онлайн. Тестирование.
Быстро и грязно.
источник
JavaScript (ES6), 130 байт
Где
\n
представляет буквальный символ новой строки. Работает, зацикливая выходной прямоугольник и выводя пробелы вне диагонали, добавляя 32 к коду символа, чтобы сделать его строчными в чередующихся квадратах. Использованиеreplace
выглядит на 1 байт длиннее:источник
AWK, 160 байт
Это примерно так же сложно, как я могу придумать
AWK
. Имея 3 разныхprint
с иcontinue
действительно добавить к числу байтов.источник