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
ncostas. Se a sequência começar ou terminar com um backtick, você também deverá quebrar os espaços. (Por exemplo,potatotorna-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,potatotorna-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`