Бустрофедон - это тип двунаправленного текста, в котором чередующиеся строки чередуются между чтением слева направо и справа налево. Направление символов также было отражено относительно направления чтения. В системах с обратным написанием бустрофедонов персонажи поворачивались на 180, а не отражались.
Вызов
Напишите программу / функцию, которая принимает строку текста и количество столбцов и выводит строку, отформатированную в указанное количество столбцов, при этом чередующиеся строки переворачиваются вверх ногами.
вход
Ваша программа должна принимать два аргумента:
- S, строка текста для форматирования
- N, количество столбцов
Выход
Ваша программа должна вывести S, завернутый в N столбцов с чередующимися перевернутыми линиями на 180 градусов.
- Направление чтения первой строки всегда слева направо.
- Не беспокойтесь о том, где размещать разрывы строк, строки могут быть разбиты на любой символ, не требуется перенос слов.
- Вы можете предположить, что входная строка не будет содержать разрывов строк.
Вот символы, которые ваша программа должна поддерживать со своими перевернутыми аналогами:
Uppercase:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Z
Lowercase:
abcdefghijklmnopqrstuvwxyz
ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz
Punctuation:
&_?!"'.,
⅋‾¿¡„,˙'
Тестовые случаи
S: The quick brown fox jumps over the lazy dog.
N: 30
Output:
The quick brown fox jumps over
˙ƃop ʎzɐl ǝɥʇ
S: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque vel libero arcu. Nunc dictum elementum lectus nec aliquet. Donec dolor nunc, sodales at dolor rhoncus, hendrerit scelerisque purus. Pellentesque vel sagittis libero, et rutrum leo. Nullam vulputate enim et massa dictum, vitae venenatis augue lobortis. Fusce sollicitudin ultrices consequat. Vestibulum quis nunc non tortor eleifend facilisis. In at nunc elit. Aliquam pellentesque, lectus quis aliquam posuere, quam lectus sagittis metus, ut auctor sem quam a neque. Integer rhoncus lobortis nisl. Pellentesque mi dui, laoreet in metus quis, mollis accumsan est. Nunc dignissim tortor ac eleifend tempus. Ut ut tellus aliquam, luctus nulla quis, consectetur nunc. Suspendisse viverra molestie condimentum. Curabitur et hendrerit augue.
N: 50
Output:
Lorem ipsum dolor sit amet, consectetur adipiscing
uǝɯǝlǝ ɯnʇɔᴉp ɔunN ˙nɔɹɐ oɹǝqᴉl lǝʌ ǝnbsᴉnQ ˙ʇᴉlǝ
tum lectus nec aliquet. Donec dolor nunc, sodales
lǝԀ ˙snɹnd ǝnbsᴉɹǝlǝɔs ʇᴉɹǝɹpuǝɥ 'snɔuoɥɹ ɹolop ʇɐ
lentesque vel sagittis libero, et rutrum leo. Null
sᴉʇɐuǝuǝʌ ǝɐʇᴉʌ 'ɯnʇɔᴉp ɐssɐɯ ʇǝ ɯᴉuǝ ǝʇɐʇndlnʌ ɯɐ
augue lobortis. Fusce sollicitudin ultrices conse
ɔɐɟ puǝɟᴉǝlǝ ɹoʇɹoʇ uou ɔunu sᴉnb ɯnlnqᴉʇsǝΛ ˙ʇɐnb
ilisis. In at nunc elit. Aliquam pellentesque, lec
ʇǝɯ sᴉʇʇᴉƃɐs snʇɔǝl ɯɐnb 'ǝɹǝnsod ɯɐnbᴉlɐ sᴉnb snʇ
us, ut auctor sem quam a neque. Integer rhoncus lo
snʇǝɯ uᴉ ʇǝǝɹoɐl 'ᴉnp ᴉɯ ǝnbsǝʇuǝllǝԀ ˙lsᴉu sᴉʇɹoq
quis, mollis accumsan est. Nunc dignissim tortor
u snʇɔnl 'ɯɐnbᴉlɐ snllǝʇ ʇn ʇ∩ ˙sndɯǝʇ puǝɟᴉǝlǝ ɔɐ
ulla quis, consectetur nunc. Suspendisse viverra m
˙ǝnƃnɐ ʇᴉɹǝɹpuǝɥ ʇǝ ɹnʇᴉqɐɹnƆ ˙ɯnʇuǝɯᴉpuoɔ ǝᴉʇsǝlo
источник
Japt ,
182179 байтJapt - это сокращенная версия Ja vaScri pt . переводчик
Как это устроено
Есть несколько проблем, но они не должны влиять на действительность программы:
\xA1
три байта длиннее.Возможно, есть способ сократить строку. Предложения приветствуются!
источник
CJam, 152
Проверьте это здесь.
Думаю, мне стоит немного сжать эту строку Unicode ...
источник
Javascript (ES6),
407400366360353 байтаЯ считаю только первые две «строки» в этом фрагменте как общее количество, так как остальная часть - это код для его запуска.
объяснение
источник
.split("")
и.join("")
до.split``
и.join``
сбрить несколько байтов..join("\n")
Также может быть переписано как выше с буквальным переводом строки вместо\n
.exec
и держать его коротким, так какexec
нужно зациклить, чтобы получить все совпадения.Pyth, 141 байт
Протестировано с онлайн-компилятором Pyth.
Как это устроено
карта
Обычный
Перевернуто (Ничего особенного)
источник
Python,
453363 байтаисточник