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")
=>5
Un 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úmeron
y un booleanob
(especificado como quiera) como entrada.
Sib
es verdadero, salidas
con cada pestaña convertida enn
espacios.
De lo contrario, envíe els
con cadan
espacio 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úmeron
y otro númerom
como entrada.
Salidas
en columnas den
líneas cada una ym
caracteres 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 cadenas
y un númeron
como entrada.
Muestra el grupo den
letras 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>ing
yfoo* 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úmeron
y una cadenar
como entrada.
Muestra eln
carácter th de cada palabra ens
. (0 indexado, las palabras están separadas por espacios).
Si la longitud de la palabra es menor quen
, user
para 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!
_
no importa ya que especifiqué no incluirlo. He editado para aclarar algunos de los otros.
**foo***bar**baz*
?