Вы должны написать программу или функцию, которая создает строку с условной лестницей. Вот как вы «ступаете по лестнице»:
Для каждого символа в строке:
Если символ является гласным верхнего или нижнего регистра, не включая «y», выведите его, а затем переместите остальную часть строки вверх по столбцу.
Если символ является пробелом или символом табуляции, выведите его, затем переместите остальную часть строки вниз на столбец.
Если символ не тот, выведите его как обычно.
IO может быть в любом разумном формате. На входе не будет никаких новых строк. Если вы хотите, вы можете удалить любые пробелы.
Если вы решите вернуть строку, а не печатать ее, пожалуйста, включите короткую программу, которая напечатает вашу строку, чтобы ее можно было визуализировать. Это не является обязательным, и не будет идти к вашему счетчику байтов. Это просто удобство для пользователей, которые не понимают гольф или esolangs (как я), чтобы иметь возможность проверить вывод или возиться с кодом.
Образец ввода-вывода:
Вывод для "bcdef ghijkl":
f jkl
bcde ghi
Выход для «Программирование головоломок и Code-Golf»:
lf
-Go
s nd de
ng zzle A Co
mmi Pu
gra
Pro
Выходные данные для "Abcdefghijklmnopqrstuvwxyz":
vwxyz
pqrstu
jklmno
fghi
bcde
A
Как обычно, это код-гольф, поэтому выигрывает самый короткий ответ в байтах.
Ответы:
MATL ,
3837 байтПопробуйте онлайн!
объяснение
Для каждого символа код вычисляет его вертикальное положение, измеренное сверху (0 - самое высокое). Затем он создает выходную строку транспонированной: каждый символ находится на строке с таким количеством пробелов, сколько указывает его вертикальное положение. Затем все строки объединяются в двумерный массив символов, который в итоге транспонируется и отображается.
источник
Pyth, 63 байта
Пробелы в середине на самом деле представляют собой один символ табуляции, но StackExchange отображает его как четыре пробела.
Попробуйте онлайн!
источник
Python 2,
141137 байтисточник
JavaScript (Firefox 30-57), 151 байт
Где
\n
представляет буквальный символ новой строки.источник
/n
на ``C, 180 байтов
Ungolfed:
источник
Perl, 110 байт (сценарий 108 байт + флаги 2 байта)
Запуск с
perl -nl script.pl
, вход на стандартный ввод, выход на стандартный вывод.Deobfuscated
Я переименовал переменные более разумно, сделал код
use strict
иuse warnings
совместимый, и сделал явным многое из того, что делает perl автоматически.Это просто запустить как
perl script.pl
, потому что он копирует эффекты-nl
флагов внутри скрипта.источник
JavaScript (ES6), 133
Меньше гольфа
Тестовое задание
источник
Haskell (в терминале ANSI), 75 байт
Пример использования:
putStr $ ("\27[2J"++).(h=<<) $ "bcdef ghijkl"
При этом используются управляющие коды ANSI для перемещения курсора вверх и вниз.
источник
C
173160156155 байтовИзменить: Заимствовал идею использования strchr из @mIllIbyte, чтобы сбрить 13 байтов
Edit2: упрощено сравнение мин / макс, -4 байта
Edit3: c может иметь любое значение для начала -> в main (c) вместо -1 байта
Edit4: добавлено ungolf / объяснение
Разгромил и объяснил:
источник