Wyzwanie polega na stworzeniu programu, który sortuje listę słów, tyle że słowa muszą być w kolejności losowego danego alfabetu.
Twój program zaakceptuje ciąg słów oddzielonych przecinkami i nowy alfabet.
Twój program wyświetli każde słowo w ten sam sposób w nowej posortowanej kolejności.
Przykład:
Wejście:
home,oval,cat,egg,network,green bcdfghijklmnpqrstvwxzaeiouy
Wynik:
cat,green,home,network,egg,oval
To jest golf-golf, więc zwycięzcą jest osoba z najkrótszym programem.
To jest moje pierwsze wyzwanie, dlatego doceniam wszelkie ulepszenia pytania / wyzwania.
Sort by custom alphabet
coś bardziej kreatywnego?Odpowiedzi:
CJam,
261917 bajtówWypróbuj online.
Przypadek testowy
Jak to działa
źródło
Bash + coreutils, 37 bajtów
Wynik:
źródło
Pyth , 19 znaków
Test:
Wyjaśnienie:
Zasadniczo sortuje fragmenty za pomocą klucza listy indeksów znaków w ciągu, a następnie łączy je przecinkami. Transakcje odwracania są krótsze niż ponowne dzielenie łańcucha.
źródło
j\,_omx_zdNchczd\,
Rubin,
5350 bajtówUżywam Ruby
tr
do zastąpienia niestandardowego alfabetua-z
przed sortowaniem. Dane wprowadzane są za pomocą argumentu wiersza poleceń.źródło
$><<
do drukowania na ekranie (możesz wtedy usunąć spację). Możesz ogolić kolejne dwa bajty, przypisując$*
zmienne takie:a,b=$*
i używając#sort_by
zamiast#sort_by!
.*$*
(który miałem na początku i który ma taką samą długość).Python, 131
Powinno być dużo miejsca na ulepszenia.
źródło
a.find(c)
bezpośrednio.JavaScript (E6) 102
119Sortuj za pomocą funkcji mapowania „M” na podstawie alfabetu w zmiennej „a”
Z IO za pomocą wyskakującego okienka (monit + alert)
Jako funkcja (testowalna) z 1 parametrem łańcucha, zwracająca tablicę łańcucha (92)
Testuj w konsoli FireFox / FireBug
Wynik
źródło
(M(a)>M(b))-(M(a)<M(b))
M=w=>[...a].indexOf(w)
? Niestety nie mogę teraz tego przetestować.Clojure, 115 bajtów
Wow, zaczęło się to dobrze,
(sort-by(fn[w](mapv(zipmap(sort %2)%2)w)))
ale potem zdałem sobie sprawę,vec
że nie sortuję się w taki sam sposób jak ciągi, a przeplatanie tych przecinków wymaga również znacznej ilości kodu.źródło