Задача состоит в том, чтобы составить программу, которая сортирует список слов, только для того, чтобы слова были в порядке случайного заданного алфавита.
Ваша программа примет строку слов, разделенных запятыми, и новый алфавит.
Ваша программа будет выводить каждое слово таким же образом в новом отсортированном порядке.
Пример:
Входные данные:
home,oval,cat,egg,network,green bcdfghijklmnpqrstvwxzaeiouy
Вывод:
cat,green,home,network,egg,oval
Это Код-гольфТаким образом, победителем становится человек с самой короткой программой.
Это мой первый вызов, поэтому любые улучшения вопроса / задачи приветствуются.
Sort by custom alphabet
или что-то более креативное?Ответы:
CJam,
261917 байтПопробуйте онлайн.
Прецедент
Как это работает
источник
Bash + coreutils, 37 байт
Вывод:
источник
Pyth , 19 символов
Тестовое задание:
Объяснение:
По сути, он сортирует порции с ключом списка индексов символов в строке, а затем соединяет их запятыми. Отмена бизнеса короче, чем разделение строки снова.
источник
j\,_omx_zdNchczd\,
Рубин,
5350 байтЯ использую Ruby
tr
для замены пользовательского алфавитаa-z
перед сортировкой. Ввод осуществляется через аргумент командной строки.источник
$><<
для печати на экране (тогда вы можете удалить пробел). Вы можете сбрить еще два байта, присваивая$*
переменные следующим образом:a,b=$*
и используя#sort_by
вместо#sort_by!
.*$*
(который у меня был сначала и который такой же длины).Python, 131
Там должно быть много места для улучшения.
источник
a.find(c)
напрямую.JavaScript (E6) 102
119Сортировка с помощью функции отображения 'M' на основе алфавита в переменной 'a'
С помощью ввода-вывода с использованием всплывающего окна (приглашение + предупреждение)
Как (тестируемая) функция с 1 строковым параметром, возвращающая строковый массив (92)
Тест в консоли FireFox / FireBug
Вывод
источник
(M(a)>M(b))-(M(a)<M(b))
M=w=>[...a].indexOf(w)
? Я не могу проверить это сейчас, к сожалению.Clojure, 115 байт
Ничего себе, это началось хорошо,
(sort-by(fn[w](mapv(zipmap(sort %2)%2)w)))
но потом я понял,vec
что не сортируются так же, как строки, и чередование этих запятых также требует значительного количества кода.источник