Напишите программу, которая принимает строку и выводит все символы в алфавитном порядке. Пробелы и символы можно игнорировать или удалять, но заглавные и строчные буквы должны оставаться в одном и том же регистре.
Пример ввода:
Johnny walked the dog to the park.
Образец вывода
aaddeeeghhhJklnnoooprtttwy
Правила:
• Любой язык
• Самый короткий код выигрывает.
Spaces and symbols can be ignored or deleted
, это значит, должны игнорироваться; или вывод такой как, .aaddeeeff
разрешенный?k
с на выходе?Ответы:
MathGolf , 2 байта
Попробуйте онлайн!
Пример вывода
Удаление не алфавитных символов
Чтобы удалить все не алфавитные символы, это решение работает:
Это то же самое, что и приведенный выше код, за которым следует фильтрация, где каждый символ сначала удваивается, а затем сравнивается его собственная заглавная буква. Например, строка
"a"
преобразуется в,"aa"
а затем в заглавную"Aa"
, что не равно"aa"
. Таким же образом, строка"B"
преобразуется в"BB"
и с большой буквы"Bb"
, что не равно"BB"
. Однако"."
он преобразуется в".."
и не изменяется при использовании заглавных букв, поэтому он будет отфильтрован.объяснение
Мне действительно нужно больше обработки строк в MathGolf ... Сейчас даже нет оператора для преобразования в строчные / прописные буквы. Единственной вещью, которую я мог использовать, был оператор капитализации, который работает как оператор верхнего регистра для строк длины 1. Это решение также сортирует не алфавитные символы, но их можно игнорировать. Буквы алфавита сохраняют свой регистр и выводятся в правильном порядке.
источник
GolfScript, 24/6 символов
Пример:
Если ввод ограничен печатной ASCII, код может быть сокращен на три символа, используя в
{95&.64>\91<&},
качестве фильтра.Можно проверить здесь .
Версия, которую можно игнорировать, еще короче (6 символов):
и дает выход
источник
{}$
{}$
будет эквивалентно$
.Утилиты ядра GNU - 25 символов (29 сбрасываемых символов)
Пример (из GNU bash 3):
Из вопроса:
Я решил оставить их в! Чтобы сохранить только буквенные символы, заменить
fold -1
сgrep -o \\w
на +4 символов.Благодаря Firefly для рекомендуя
grep -o
болееsed
и Wumpus дляfold -1
. ;-)источник
-f
(сложить),sort
чтобы игнорировать регистр.С, 121
Это довольно долго по сравнению с другими записями, но оно не зависит от встроенных функций сортировки или ToLower:
Более читаемая версия:
Это реализация сортировки вставкой с нечувствительным к регистру сравнением между элементами (с использованием
|32
побитовой операции). Это связано с тем, что в кодировке ASCII заглавные и строчные буквы отличаются только на 2 5 бит.источник
Рубин - 33 символа
источник
*""
вместо.join
.p
, но это сомнительно, так что просто используйтеputs
. Кроме того ,$<
это ярлык для ФГДДА$><<
вместо того,puts
чтобы разделительное пространство можно было удалить.PowerShell: 39
Результат
C #: 100
Результат
источник
ToCharArray
;String
реализуетIEnumerable<char>
sal
, я не думаю, что вы можете использовать это. Но вы можете избавиться от назначения переменной с помощью"$([string[]][char[]](Read-Host)|sort)"
.APL 16
источник
Perl6: 26 символов
Сначала сортирует строчные буквы, затем строчные, удаляет символы / пробелы
Если пробел / символы в выходных данных также можно игнорировать, это всего 21 символ.
Это сортирует без учета регистра, сохраняет символы (26 символов)
источник
Perl 34
Теперь принимает данные от
STDIN
.Perl 18
Если вывод, включающий заглавные буквы и включенные символы, является приемлемым
источник
Хаскелл, 88
(38 без импорта из стандартной библиотеки)
источник
к (
109)Читает со стандартного ввода
пример
источник
C #: 83
Обновление: 65
Исполняемый в LinQPad
источник
Питон 3: 45
источник
J, 12 символов
Игнорирует любые не-буквенные символы.
источник
f=.
или вы хотите, чтобы я добавил1!:1[1
?1!:1[1
и,echo
пожалуйста,echo
?Javascript - 74
К сожалению, из-за способа сортировки символов в JS мы не можем использовать стандартную функцию сортировки:
На самом деле это может быть сокращено до:
источник
F # (
6856)Я изучаю F #, поэтому я уверен, что это может быть короче:
Выход:
источник
PHP, 50 байт
не удаляет не-буквы, принимает данные из STDIN; беги с
-R
.источник
R, 48 символов
Пример использования:
источник
q / k4 (3? 5? 8?)
если достаточно ввести код и ввод непосредственно в REPL, это просто
asc
:`s#
является немного д обозначений , что указывает на то, что строка находится в отсортированном порядке (может быть двоичным поиск, и т.д.). если он должен идти, то стоит два символа, получая пять:если вы хотите, чтобы он был предоставлен в stdin, пришло время переключиться на k4 (и мы избавились от него
`s#
бесплатно), и это решение из восьми символов:этот, кстати, будет работать как файл кода точно так же, как есть (по-прежнему восемь символов, так как q хорошо, если в кодовом файле нет последней новой строки). обычно бывают проблемы с приветственным баннером и с открытым REPL, но если вы передадите входные данные в виде строки, все это исчезнет:
на самом деле не уверен, откуда взялся этот дополнительный символ новой строки ....
источник
Желе, 3 байта
Мое первое решение Jelly на этом сайте! Спасибо @LeakyNun и @ErikTheOutgolfer за то, что научили меня, как использовать Jelly и @Dennis для этого! : D
объяснение
Или же
ŒuÞ
делает то же самое, кроме преобразования в верхний регистр.источник
Powrshell, 36 байт
Тестовый скрипт:
Выход:
источник
05AB1E , 3 байта
Попробуйте онлайн .
Объяснение:
источник
Java 10, 72 байта (как лямбда-функция)
Попробуйте онлайн.
Но так как это старая проблема, заявив полную программу:
Java 10, 126 байт (как полная программа)
Попробуйте онлайн.
Объяснение:
источник