Seu objetivo é inserir qualquer texto arbitrário, como:
This is some text
E produza esse texto formatado como código para postagens (Markdown com sabor SE) e comentários (mini Markdown) no Stack Exchange, como:
`This is some text`
`This is some text`
No entanto, fica mais complicado. Considere a entrada:
Perl has a variable called $`
A saída deve ser
`` Perl has a variable called $` ``
`Perl has a varaible called $\``
As regras completas para a formatação são:
Postagens completas (Markdown SE completo)
Etapa 1: conte o menor número para o qual não existem exatamente tantos backticks consecutivos na string. Vamos chamar assim
n
. (Por exemplo, para a sequênciapotato
,n
é 1, parathis is a backtick: `
,n
é 2 e para` `` ``` ````` ``````
,n
é 4.)Etapa 2: enrole a corda nas
n
costas. Se a sequência começar ou terminar com um backtick, você também deverá quebrar os espaços. (Por exemplo,potato
torna-se`potato`
,this is a backtick: `
torna`` this is a backtick: ` ``
-` `` ``` ````` ``````
se e torna - se```` ` `` ``` ````` `````` ````
.
Comentários (mini-Markdown)
- Enrole
`
e escape de tudo`
com\`
. (Por exemplo,potato
torna-se`potato`
,this is a backtick: `
tornathis is a backtick: \`
-` `` ``` ````` ``````
se e torna - se\` \`\` \`\`\` \`\`\`\`\` \`\`\`\`\`\`
.
- Enrole
Isso é código-golfe ; a resposta mais curta na contagem de bytes vence.
\
; para formatar um \
, você precisa fazer ``\``
. Além disso, qualquer coisa que termine com \
o mesmo problema: asdf\
produz `asdf`