Dada una cadena como entrada, genera la cadena con el siguiente algoritmo aplicado:
1. Split the String by " " (find the words): "Hello World" -> ["Hello","World"]
2. Find the vowel count of each component: [2,1] ( ["H[e]ll[o]","W[o]rld"] )
3. For each of the components, output the first n letter where n is the number
of vowels it contains: ["He","W"]
4. Join the list to a single string and reverse it: "HeW" -> "WeH"
Especificaciones
Puede tomar datos de entrada y salida de cualquier forma estándar , y el único tipo de datos permitido para Entrada y Salida es el tipo de Cadena nativa de su idioma. Tomar entradas directamente como una lista de palabras individuales no está permitido.
Le garantizamos que no habrá espacios consecutivos.
Las vocales son
"a","e","i","o","u","A","E","I","O","U"
, pero"y","Y"
no se consideran vocales .Se garantiza que solo aparecerán letras y espacios en la entrada, pero sin líneas nuevas.
La salida debe ser sensible a mayúsculas y minúsculas.
No se garantiza que cada palabra contenga una vocal. Si no aparecen vocales en esa palabra, no tiene que emitir nada para ella.
Casos de prueba
Input -> Output
---------------
"" -> ""
"Hello World" -> "WeH"
"Waves" -> "aW"
"Programming Puzzles and Code Golf" -> "GoCauPorP"
"Yay Got it" -> "iGY"
"Thx for the feedback" -> "eeftf"
"Go Cat Print Pad" -> "PPCG"
"ICE CREAM" -> "RCCI"
Puntuación
La presentación válida más corta para cada idioma gana, este es el código de golf . ¡Buena suerte y diviertete!
Sandbox para aquellos que pueden ver publicaciones eliminadas.
Respuestas:
Haskell, 59 bytes
Pruébalo en línea!
fuente
V , 31 bytes
Pruébalo en línea!
Y explicación:
fuente
æ
usado, parece recordar que se agregó recientemente y es uno de los comandos más útiles.æ
Es extremadamente útil. Debería haberlo agregado hace mucho tiempo.ø
también es realmente agradable, es genial que esta respuesta use ambos.|
(¡ Pruébelo en línea! ), Que no está en su explicación. Pero no sé V; es necesario?<C-a>
coloca el cursor al final de la palabra). tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…Brachylog , 17 bytes
Pruébalo en línea!
Explicación
Esa es una traducción directa del problema:
fuente
Perl 6 , 57 bytes
fuente
Alice , 32 bytes
Pruébalo en línea!
Explicación
Esto es solo un marco para el código lineal en Ordinal (modo de procesamiento de cadenas). Al desplegar el programa, obtenemos:
Esto es lo que hace:
fuente
JavaScript (ES6), 76 bytes
Casos de prueba
Mostrar fragmento de código
fuente
Perl 5, 47 bytes
Código de 45 bytes + 2 para
-pa
.Pruébalo en línea!
fuente
JavaScript (ES6), 96 bytes
Mostrar fragmento de código
fuente
Thx
) no deberían tener salida; su caso de prueba genera la palabra completa.Pyth - 19 bytes
Pruébalo aquí
Explicación:
Podría tener 18 bytes si no fuera por la cadena vacía:
fuente
@
- La intersección es mucho mejor que la expresión regular aquí. Ah, ya veo, solo tienes un lambda / mapa en comparación con mi 2.Pyth, 31
Me llevó mucho tiempo escribir, y siento que probablemente haya un mejor enfoque, pero esto es lo que tengo:
Prueba en línea .
fuente
jk
dato.Ohm, 13 bytes
Explicación
z
.:
) con su bloque de código asociadoαv_K_σh
.av
empujaaeiou
_
empuja el elemento iterado actualK
cuenta las ocurrencias deaeiou
en_
_
el elemento nuevamenteσh
Divide el elemento en rodajas de longitudoccurences
y toma el primer elemento.occurences
caracteres0J
Empuja la pila unida''
0
es necesario porque requiere un argumento que se unirá. Si ese argumento no es una matriz, se une a la pilaR
invierte el resultadofuente
Rubí ,
5459 + 1 =5560 bytesUtiliza la
-p
bandera para +1 byte.Pruébalo en línea!
fuente
-p
vale un byte?ruby -pe '...'
es solo un byte más queruby -e '...'
y-e
es una forma válida de ejecutar el script.Japt v2.0a0,
1210 bytesIntentalo
Explicación
¡Más o menos hace exactamente lo que describe la especificación!
fuente
"%v"
a\v
(un literal de expresión regular de una sola clase, equivalente a/\v/
). Todavía no es útil, por supuesto, ya que todavía no he implementado v2.0;)Jalea , 12 bytes
Pruébalo en línea!
fuente
05AB1E , 14 bytes
Pruébalo en línea!
Darn 05AB1E no tiene incorporado para AEIOUaeiou ಠ_ಠ
fuente
#RʒDlžMÃg£R?
para 12, puede prácticamente minúscula el duplicado eliminando la necesidad deAEIOUaeiou
. Además, ¿por qué diablos no funcionaría esto sin el?
? ¿Puedes publicar una explicación? No estoy familiarizado conʒ
Mathematica, 145 bytes
fuente
s[[i]]],
y{i,Length@s}
?"aeiouAEIOU".ToCharArray()
?Retina ,
4946 bytesPruébalo en línea! El enlace incluye un conjunto de pruebas. Explicación: Esta es una aplicación de los grupos de equilibrio de .NET. La búsqueda anticipada busca vocales en la palabra, que se capturan en el grupo 2. Luego, el grupo aparece cuando cada letra coincide, capturando así el número de letras igual al número de vocales en la palabra. El resto de la palabra y cualquier espacio final se ignora para que el proceso pueda comenzar nuevamente con la siguiente palabra. Finalmente se invierten las letras restantes.
fuente
C # (.NET Core) , 144 bytes
Pruébalo en línea!
La peor parte es que revertir a
string
en C # devuelve unIEnumerable<char>
que debe volver a convertir a astring
.fuente
PHP , 96 bytes
Pruébalo en línea!
fuente
Python 3 ,
83817977 bytesPruébalo en línea!
fuente
()
impresiónraw_input()
lugar de loinput()
cual desperdiciaría 4 bytes.Java 8 ,
171151 bytes-20 bytes gracias a @Lukas Rotter
Siento que todavía necesita algo de golf ... avíseme en los comentarios si tiene alguna sugerencia.
Pruébalo en línea!
fuente
(?i)
para ignorar mayúsculas y minúsculas en expresiones regulares. Entonces(?i)[aeiou]
también debería funcionar.{}
corchetes del bucle for, ya que solo contiene una declaración.^
para encontrar la cantidad de vocales:z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
k, 33 bytes
Pruébalo en línea!
fuente
Lisp común, 218 bytes
Explicación
fuente
sed, 133 (132 + 1) bytes
sed se llama con la
-E
bandera, lo que aparentemente significa que agrego un byte.Nota: Realmente no he intentado jugar golf todavía.
Pruébalo en línea!
fuente
Clojure,
9694 bytesBueno, esta longitud es bastante ridícula.
mapcat
Guardado dos bytes.fuente
Swift 3, 240 bytes
Esta es una función que se puede usar con
f(s:"Input")
. Sorprendentemente, no creo que se pueda jugar más al golf:¡Pruébalo en IBM Sandbox!
fuente