задача
- Взять входную строку через пробел.
- Сортировать слова по алфавиту.
- Распечатайте их вертикально в 3 столбца, разделенных пробелами.
Вызов
- Высоты всех трех столбцов должны быть максимально равномерно взвешены.
- Все три столбца должны быть выровнены.
Это код-гольф , поэтому выигрывает самый короткий код!
пример
Если ввод:
"cat caterpillar pie frog elephant pizza",
Выход должен быть:
cat elephant pie
caterpillar frog pizza
Пожалуйста, остерегайтесь случаев, если ввод:
"a b c d e f g"
Должно быть напечатано как:
a c e
b d f
g
# or
a d f
b e g
c
# and not
a d g
b e
c f
Ответы:
Шелуха ,
2417 байтПопробуйте онлайн!
объяснение
Это была удивительно сложная задача, поскольку у Husk в настоящее время нет встроенного средства для разбиения списка на определенное количество частей.
источник
Желе , 6 байт
Попробуйте онлайн!
источник
a b c d e f g
деле это тоже было проверено с делом, и я провел другие обширные тесты, потому что у меня тоже было это чувство первым. О, и его краткость исходит от встроенногоG
(Format as G rid.).Python 3 , 148 байт
-6 байт благодаря овс.
Попробуйте онлайн!
Работаю над этим.Все, что я пробовал, делает вывод односторонним ...источник
Mathematica, 115 байт
попробуйте на песочнице Вольфрама
вставьте следующий код и нажмите Shift + Enter
источник
Perl 5 , 134 + 1 (
-a
) = 135 байтПопробуйте онлайн!
источник
05AB1E , 8 байтов
Попробуйте онлайн!
источник
Javascript
181175 байтисточник
J , 73 байта
Я могу объяснить этот беспорядок позже, если кто-то заинтересован.
Попробуйте онлайн!
источник
Древесный уголь ,
6564 байтаПопробуйте онлайн! Ссылка на подробную версию кода. Сохраните 2 байта, если мне не нужно обрабатывать регистр менее 3 слов. Вероятно, я должен использовать сортировку "eval" ... Объяснение:
Разделить ввод на пробелы.
Сортировать массив.
Обведите три примерно равных фрагмента массива. (
I1
должно быть¦¹
.)Соедините фрагмент с новыми строками и напечатайте его, не перемещая курсор.
Если срез не пустой, двигайтесь вправо на единицу больше, чем длина самого длинного слова в срезе.
источник
358 байтов минимизированного JS:
источник
GNU sed , 92 + 1 = 93 байта
+1 байт за
-r
флаг.Я вообще не играл в гольф, но все оказалось намного проще, чем я ожидал.
Попробуйте онлайн!
источник
Оболочка Борна, 172 байта
Это более читабельно, если отформатировать условно:
Ценой сканирования входных данных один раз для каждого столбца он не использует массивы. Более сложная программа awk может открыть 3 файла (по одному на каждое N-е слово), обрабатывая ввод за один проход. Затем они могут быть объединены и напечатаны с использованием той же последней строки.
Переменная
N
строго не нужна; по цене 4 байта мы сохраняем сканирование ввода еще 3 раза.источник