Reduzca cada palabra en una cadena de grupo de cadenas a letras individuales delimitadas por espacios o signos de puntuación.
Ejemplo
I'm a little teapot, short and stout. Here is my handle, here is my spout. When I get all steamed up - hear me shout! Tip me over and pour me out.
se convierte
I' a l t, s a s. H i m h, h i m s. W I g a s u - h m s! T m o a p m o.
Editar: si hay varios espacios, conserve solo un espacio. Toda puntuación debe ser preservada, me perdí el apóstrofe. Sí, este es el código de golf :-).
+
etc.)O'Leary-Clarence-DeVois
se convertiríaO'--
?Respuestas:
CJam, 13 bytes
Funciona si solo puedo considerar los caracteres de puntuación comunes, y la salida puede tener espacios finales. (Gracias a Dennis)
Esta pregunta necesita mucha más aclaración ...
CJam,
1716 bytesPruébalo en línea .
Explicación
fuente
r
empuja una cadena vacía en EOF, por lo que esto también funciona:r{(\eu_elf&Sr}h;
;
no tiene sentido entonces.&
. Además, dependiendo de lo que cuente exactamente como puntuación,'@,
sería una alternativa más corta aeu_el
.Pyth, 14 bytes
Pruébelo en línea: demostración
Explicación:
fuente
Python 3.4,
94928277 bytes¡Soy nuevo en el código de golf pero pensé en probarlo! Este no es un ganador, pero fue divertido.
Esto simplemente divide la cadena, tomando el primer carácter de cada palabra junto con cualquier puntuación en el resto de la palabra.
* editado con cambios por FryAmTheEggman, DLosc
fuente
print(*[w[0]+''.join([c for c in w[1:]if 1-c.isalpha()])for w in input().split()])
join
puede tomar un generador desnudo como argumento. Además, aquí es una forma de cadena sobre el tramo de hacer la lógica "si no isalpha":c[c.isalpha():]for c in w
. Debería bajarlo a 77 bytes. : ^)Jalea , 14 bytes
Pruébalo en línea!
Solución hecha con Mr. Xcoder y caird coinheringaahing en la sala de chat de Jelly Hypertraining .
Alternativa de 14 bytes: ¡ Pruébelo en línea!
fuente
sed (39 caracteres)
Solo un par de expresiones regulares:
fuente
Lua - 126 caracteres
Lua no es un gran lenguaje de golf de código, pero lo probé:
Esto supone que
c
es la cadena.Aquí se limpia para facilitar la lectura:
Puede probarlo aquí (copiar y pegar. Por primera vez, también tiene que hacerlo
c = "I'm a little ...
). Por alguna razón, la demostración en línea de Lua no le permitirá ingresar variables usandoio.read
...fuente
PowerShell, 56 bytes
fuente
Javascript ( ES6 )
7268 bytesComentado:
fuente
C99 -
170169 bytesSin golf:
Uso:
Salida:
fuente
Java 8, 87 bytes
Explicación:
Pruébalo aquí
Explicación de expresiones regulares:
Por lo tanto, básicamente elimina todas las letras minúsculas de una cadena, excepto la primera.
fuente
Perl 5 , 34 bytes
Código de 33 bytes + 1 para
-p
.Pruébalo en línea!
fuente
R,
4645 bytesEsto lee una línea de STDIN e imprime en STDOUT. Utiliza una expresión regular para eliminar todos los caracteres después de la primera letra seguidos de cualquier cantidad de puntuación.
Ungolfed + explicación:
Ejemplo:
fuente
05AB1E , 13 bytes
Pruébalo en línea!
Explicación:
fuente
VBA (Excel),
141133 BytesUsando la Ventana Inmediata de VBA, [A1] como Cadenas Ingresadas.
fuente
Perl 6 , 15 bytes
Pruébalo en línea!
fuente