Aquí está el alfabeto fonético:
Alfa
Bravo
Charlie
Delta
Echo
Foxtrot
Golf
Hotel
India
Juliett
Kilo
Lima
Mike
November
Oscar
Papa
Quebec
Romeo
Sierra
Tango
Uniform
Victor
Whiskey
X-ray
Yankee
Zulu
En la menor cantidad de bytes posible:
- La entrada será estas palabras en un orden aleatorio, con las primeras letras eliminadas.
- Su objetivo es ordenar las palabras de nuevo a su orden original usando solo las letras que tiene ahora . En otras palabras: descubra cómo '[A] lfa' aparece antes que '[B] ravo', y así sucesivamente. Su código no debe hacer referencia a la lista original, claves de índice, etc.
- Restaura las primeras letras originales de cada palabra.
Reglas
- El guión en los rayos X probablemente sea malo, pero necesita quedarse, porque yo también soy malo.
- El resultado puede ser una cadena (separada por comas o nuevas líneas, por ejemplo) o una matriz.
- La ortografía y los casos de letras no son negociables.
- No es necesario mostrar resultados de ejemplo en las respuestas.
code-golf
data-structures
alphabet
rybo111
fuente
fuente
Respuestas:
Jalea , 21 bytes
La entrada y la salida son matrices de cadenas.
Pruébalo en línea!
Antecedentes
Si bien hay 26! = 403291461126605635584000000 entradas diferentes, podemos ordenar la entrada por lo que solo tenemos que lidiar con una permutación de este alfabeto fonético. Ordenando lexicográficamente, obtenemos
Simplemente podemos indexar en esta matriz para ordenarla por las letras eliminadas. Los índices (basados en 1) son
Todo lo que queda por hacer es anteponer las letras mayúsculas del alfabeto a las cadenas en el resultado.
Cómo funciona
fuente
Python 3 ,
7671 bytesPruébalo en línea!
fuente
JavaScript, 169/195 bytes
Si se puede reemplazar la primera letra antes de ordenar 169 bytes
Pruébalo en línea!
Si la clasificación debe realizarse antes de agregar la primera letra, 195 bytes
Pruébalo en línea!
Un total de 20 bytes de cada uno de estos programas es solo String.fromCharCode () para recuperar el carácter ...
Otros 69 bytes son la cadena que identifica de forma exclusiva el inicio de cada una de las palabras en el alfabeto fonético.
Explicación del primer ejemplo.
for(i=0;i<26;)if(!k.indexOf("l,r,ha,e,c,ox,ol,ot,nd,uli,il,im,ik,ov,s,ap,ue,o,ie,ang,n,i,h,-,a,u".split
,[i++]))return i
La cadena codificada aquí se separa en una lista de los caracteres de identificación únicos que comienzan las palabras del alfabeto fonético después de eliminar el primer carácter.
Esta información se utiliza para encontrar el índice donde la cadena cae en el alfabeto para volver a poner el carácter inicial.
JavaScript se clasifica implícitamente como cadenas por los valores ASCII de los caracteres
Explicación del segundo ejemplo.
La función g = k => ... encuentra el índice para el que la cadena debe caer en el alfabeto fonético.
Ordena las cadenas por los números devueltos realizando g (...)
Reemplaza el primer carácter de cada una de las cadenas del alfabeto fonético
fuente
.sort()
en la respuesta de 169 bytes? En la pregunta dice " 3. Restaure las primeras letras originales de cada palabra ", pero no menciona que la salida también debe clasificarse.PHP , 94 bytes
Pruébalo en línea!
fuente
05AB1E ,
2927 bytesPruébalo en línea!
-2 gracias a la magia de Emigna
.•
.fuente
.•C5ê™вrΓ˜3åóMîõxÿ•u
.A-Za-z0-9
lugar de0-9A-Za-z
?Java 7, 169 bytes
Pruébalo aquí
Explicación:
fuente