Su objetivo es ingresar cualquier texto arbitrario, como:
This is some text
Y envíe ese texto formateado como código para publicaciones (Markdown con sabor SE) y comentarios (mini Markdown) en Stack Exchange, como:
`This is some text`
`This is some text`
Sin embargo, se vuelve más complicado. Considere la entrada:
Perl has a variable called $`
La salida debe ser
`` Perl has a variable called $` ``
`Perl has a varaible called $\``
Las reglas completas para el formato son:
Publicaciones completas (Markdown completo de SE)
Paso 1: cuente el menor número para el que no hay exactamente tantos backticks consecutivos en la cadena. Llamemos esto
n
. (Por ejemplo, para la cadenapotato
,n
es 1, parathis is a backtick: `
,n
es 2 y para` `` ``` ````` ``````
,n
es 4.)Paso 2: envuelve la cuerda en
n
comillas. Si la cadena comienza o termina con una marca de retroceso, también debe envolver con espacios. (Por ejemplo, sepotato
convierte`potato`
, sethis is a backtick: `
convierte`` this is a backtick: ` ``
y se` `` ``` ````` ``````
vuelve```` ` `` ``` ````` `````` ````
.
Comentarios (mini-Markdown)
- Envoltura en
`
y escapar de todos los`
's con\`
. (Por ejemplo, sepotato
convierte`potato`
, sethis is a backtick: `
conviertethis is a backtick: \`
y se` `` ``` ````` ``````
vuelve\` \`\` \`\`\` \`\`\`\`\` \`\`\`\`\`\`
.
- Envoltura en
Este es el código de golf ; la respuesta más corta en bytes cuenta gana.
\
; para formatear a\
, debes hacer``\``
. Además, cualquier cosa que termine con a se\
encuentra con el mismo problema:asdf\
produce `asdf`Respuestas:
APL (90)
(Sí, el juego de caracteres APL cabe en un byte, aquí está la página de códigos 907 de IBM ).
Esta es una función que toma una cadena y devuelve una matriz de dos cadenas, donde la primera cadena es la representación del comentario y la segunda cadena es la representación posterior completa .
Pruebas:
Nota: Le di un nombre a la función por razones de legibilidad, esto no es estrictamente necesario para usarla (solo puede poner el argumento al lado de la función anónima), así que no lo conté.
fuente
Ruby, 119
Sin golf:
fuente