El desafío es hacer un programa que clasifique una lista de palabras, solo que las palabras deben estar en el orden de un alfabeto dado al azar.
Su programa aceptará una cadena de palabras separadas por comas y un nuevo alfabeto.
Su programa mostrará cada palabra de la misma manera en el nuevo orden ordenado.
Ejemplo:
Entrada:
home,oval,cat,egg,network,green bcdfghijklmnpqrstvwxzaeiouy
Salida:
cat,green,home,network,egg,oval
Este es un código de golf , por lo que el ganador es la persona con el programa más corto.
Este es mi primer desafío, por lo que cualquier mejora en la pregunta / desafío es apreciada.
Sort by custom alphabet
o algo más creativo?Respuestas:
CJam,
261917 bytesPruébalo en línea.
Caso de prueba
Cómo funciona
fuente
Bash + coreutils, 37 bytes
Salida:
fuente
Pyth , 19 caracteres
Prueba:
Explicación:
Básicamente, ordena los fragmentos, con una clave de la lista de índices de los caracteres en la cadena, luego los une en comas. El negocio de reversión es más corto que dividir la cadena nuevamente.
fuente
j\,_omx_zdNchczd\,
Ruby,
5350 bytesEstoy usando Ruby
tr
para reemplazar el alfabeto personalizado cona-z
antes de ordenar. La entrada es a través del argumento de la línea de comandos.fuente
$><<
para imprimir en la pantalla (puede eliminar el espacio entonces). Puede eliminar otros dos bytes asignándolos$*
a variables como esta:a,b=$*
y usando en#sort_by
lugar de#sort_by!
.*$*
(que tenía al principio y que tiene la misma longitud).Python, 131
Debe haber mucho espacio para mejorar.
fuente
a.find(c)
directamente.JavaScript (E6) 102
119Ordenar con una función de mapeo 'M' basada en el alfabeto en la variable 'a'
Con IO usando popup (prompt + alert)
Como una función (comprobable) con 1 parámetro de cadena, que devuelve una matriz de cadena (92)
Prueba en la consola FireFox / FireBug
Salida
fuente
(M(a)>M(b))-(M(a)<M(b))
M=w=>[...a].indexOf(w)
? No puedo probarlo ahora, desafortunadamente.Clojure, 115 bytes
Wow, esto comenzó bien,
(sort-by(fn[w](mapv(zipmap(sort %2)%2)w)))
pero luego me di cuenta devec
que no se ordena de la misma manera que las cadenas, e intercalar esas comas también requiere una cantidad significativa de código.fuente