Mini golf de 9 hoyos: Descripción
- 9 (en su mayoría bastante fáciles) desafíos de golf de código de dificultad variable
- Sanciones por usar el mismo idioma más de una vez
- Todos los desafíos sobre un tema específico (este tema: Manipulación de texto)
- La entrada y salida pueden ser razonables (es decir, STDIN y STDOUT, leer / escribir en un archivo, argumento de función y valor de retorno, etc.) pero NO deben estar codificadas en el programa
- Muy inspirado por 9 Hole Challenge y Text Mechanic
Agujeros
Bolsa de golf con código
Tome dos cadenas como entrada.
Genere el recuento de caracteres de la primera cadena, mientras ignora cualquier ocurrencia de cualquier carácter en la segunda cadena.
Ejemplo:f("foobarbaz", "ao")=>5Un pre-texto para jugar al golf
Tome dos cadenas como entrada.
Salida de la primera cadena, con cada línea prefijada con la segunda.
Ejemplo:f("foo\nbar\nbaz", "a")=>"a foo\na bar\na baz"Guerra de pestañas vs espacios
Tome una cadenas, un númerony un booleanob(especificado como quiera) como entrada.
Sibes verdadero, salidascon cada pestaña convertida ennespacios.
De lo contrario, envíe elscon cadanespacio convertido a pestañas.
Ejemplo:f("if (x) {\n\tdoStuff();\n}", 4, true)=>"if (x) {\n[sp][sp][sp][sp]doStuff();\n}"([sp]significa espacio)Pilares del golf
Tome una cadena
s, un númerony otro númeromcomo entrada.
Salidasen columnas denlíneas cada una ymcaracteres por columna.
También tenga relleno de un espacio entre las columnas.
Ejemplo:f("this is some placeholder text, foo bar baz...", 3, 5)=>this aceho foo is so lder bar b me pl text, az...Cartas amistosas
Tome una cadenasy un númeroncomo entrada.
Muestra el grupo denletras más común ens.
Si hay un empate, envíe uno o todos ellos.
Ejemplo:f("abcdeabcfghiabc", 3)=>"abc"Letras de
Tome una cadena como entrada.huevosrevueltos para el desayuno
Imprima la cadena con todas sus palabras codificadas (orden de letras aleatorizado) excepto sus primeras y últimas letras.
Para simplificar, suponga que la entrada será una lista de "palabras", separadas por espacios (es decir@$&_():;" foo bar, en ,@$&_():;"se considera una "palabra").
Ejemplo:f("this is a sentence that will be scrambled")=>"tihs is a stcneene that wlil be sclamrbed"ASCIFIAR
Tome una cadena como entrada.
Si la cadena solo contiene números y espacios, reemplace los números con sus respectivos caracteres ASCII (eliminando los espacios).
De lo contrario, haga lo contrario (caracteres a números).
Ejemplo:f("ASCIIfy challenge")=>"65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101"
Ejemplo 2:f("65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101")=>"ASCIIfy challenge"Transformación mini-mini-markdown
Tome una cadena como entrada.
Salida de la cadena convertida con mini-markdown, como se usa en los comentarios en Stack Exchange.
Esta es una versión aún mini-er: sólo tiene que manejar**bold**,*italics*y`code`.
No necesita manejar anidamiento no válido, como**foo *bar** baz*. También suponga que cuando vea un delimitador (*o`), siempre significará formatear (es decir,te**st**ing=>te<b>st</b>ingyfoo* bar *baz=>foo<i> bar </i>baz).
Ejemplo:f("**foo** *bar **baz*** `qux`")=>"<b>foo</b> <i>bar <b>baz</b></i> <code>qux</code>"Solo los mejores personajes
Tome una cadenas, un númerony una cadenarcomo entrada.
Muestra elncarácter th de cada palabra ens. (0 indexado, las palabras están separadas por espacios).
Si la longitud de la palabra es menor quen, userpara esa palabra en su lugar.
Ejemplo:f("this is a test sentence foo bar baz", 2, "-")=>"i--snorz"
Tanteo
Su puntaje es la suma de los recuentos de caracteres de sus programas. Por cada idioma repetido, multiplique por 110%. Por ejemplo, si tiene tres soluciones Ruby, y el recuento total de caracteres de todas sus soluciones es 1000, su puntaje es 1000 * 1.1 * 1.1 = 1210. Redondee hacia abajo si tiene un puntaje no entero.
¡Buena suerte!
code-challenge
string
multiple-holes
Pomo de la puerta
fuente
fuente

_no importa ya que especifiqué no incluirlo. He editado para aclarar algunos de los otros.**foo***bar**baz*?Respuestas:
Puntuación: 382 * 1.1 2 = 462
Idiomas propensos a cambiar.
1. APL,
84Gracias @marinus por eliminar 4 caracteres.
Llamado con las cadenas como los argumentos izquierdo y derecho, por ejemplo.
2. Ruby,
3531Gracias @DoorknobofSnow por eliminar 4 caracteres.
3. Python, 48
4. GolfScript, 20
Asume que los argumentos están en la pila. Prueba en línea
5. J, 50
Llamado con la cadena como el argumento izquierdo y el número como el derecho, por ejemplo.
6. Ruby, 61
7. GolfScript,
393534Nuevamente, se supone que el argumento está en la pila. Prueba en línea
8. Perl, 98
9. Haskell, 36
fuente
f=->s,r{...}) en lugar de una función. Sin embargo, me niego a votar hasta que se complete: PPython - 697 × 1.1 9 ≈ 1644
Vaya, seguro que amo las lambdas
Nota : 3 y 5 se copiaron descaradamente de la respuesta de Volatility , ya que no pude encontrar una mejor alternativa. Además, esto se hizo solo por diversión .
EDITAR : Gracias a Volatility por los consejos.
fuente
int, ya que los booleanos son una subclase de ellos, y para 7.all([...])se pueden acortar ax.replace(' ','').isdigit()a.Puntuación 513 * 1.1 5 = 826
Recibió una gran paliza por la pena del mismo idioma. Resolví la mayoría de estos en Ruby solo para terminarlos lo más rápido que pude. Podría cambiar algunos idiomas más tarde. Se agregó un pequeño resumen / explicación en cada respuesta.
1: Python (46)
Primero, una respuesta más corta en Ruby 2.0 (30) que da más penalización y una puntuación general más alta:
2: Ruby 1.9+ (37)
Devuelve cada línea de
sprefijo cont:3: Ruby 1.9+ (48)
Devuelve
scon pestañas reemplazadas pornespacios o viceversa, dependiendo deb:4: Ruby 1.9+ (95)
Alguien me disparó.
5: Ruby 1.9+ (58)
Devuelve la ejecución más común de
ncaracteres ens:6: J (47)
Revuelve el texto de alguna manera; Descaradamente robado literalmente de marinus :
7: Rubí (57 + 1)
Imprime la entrada ASCIIfied o des-ASCIIfied. Corre con el
-pinterruptor.8: Sed (87)
Imprime la entrada convertida de (mini) rebaja a HTML:
9 rubíes 1.9+ (37)
Devuelve una cadena de
ncaracteres th de cada primera palabras, or:fuente
<b>test** **test2</b>de**test** **test2**?**foo *bar* baz**?-operador de código ruby funciona con el enumerador?Trabajo en progreso
1. Java - 66
2. Java - 64
3. Python - 58
4. Python - 84
5)
6)
7. Befunge 98 - 9
8)
9)
fuente
for(char c:b.toCharArray())yreplace(c+"","");yreturn s.length();(o algo así) para que funcione.