Votre objectif est de saisir tout texte arbitraire, tel que:
This is some text
Et affichez ce texte au format code pour les publications (Markdown à saveur SE) et les commentaires (mini-Markdown) sur Stack Exchange, tels que:
`This is some text`
`This is some text`
Cependant, cela devient plus délicat. Considérez l'entrée:
Perl has a variable called $`
La sortie doit être
`` Perl has a variable called $` ``
`Perl has a varaible called $\``
Les règles complètes de formatage sont les suivantes:
Articles complets (Markdown SE complet)
Étape 1: comptez le plus petit nombre pour lequel il n'y a pas exactement autant de retours consécutifs dans la chaîne. Appelons ça
n
. (Par exemple, pour la chaînepotato
,n
est 1, pourthis is a backtick: `
,n
est 2 et pour` `` ``` ````` ``````
,n
est 4.)Étape 2: enveloppez la chaîne de
n
guillemets. Si la chaîne commence ou se termine par un backtick, vous devez également encapsuler avec des espaces. (Par exemple,potato
devient`potato`
,this is a backtick: `
devient`` this is a backtick: ` ``
et` `` ``` ````` ``````
devient```` ` `` ``` ````` `````` ````
.
Commentaires (mini-Markdown)
- Envelopper dans
`
et échapper à tous les`
« s avec\`
. (Par exemple,potato
devient`potato`
,this is a backtick: `
devientthis is a backtick: \`
et` `` ``` ````` ``````
devient\` \`\` \`\`\` \`\`\`\`\` \`\`\`\`\`\`
.
- Envelopper dans
C'est du golf de code ; la réponse la plus courte en nombre d'octets l'emporte.
\
; pour formater un\
, vous devez le faire``\``
. De plus, tout ce qui se termine par un rencontre\
le même problème:asdf\
produit `asdf`Réponses:
APL (90)
(Oui, le jeu de caractères APL tient dans un octet, voici la page de codes 907 d' IBM .)
Il s'agit d'une fonction qui prend une chaîne et renvoie un tableau de deux chaînes, où la première chaîne est la représentation du commentaire et la deuxième chaîne est la représentation complète du post .
Tests:
Remarque: J'ai donné un nom à la fonction par souci de lisibilité, ce n'est pas strictement nécessaire pour l'utiliser (vous pouvez simplement mettre l'argument à côté de la fonction anonyme), donc je ne l'ai pas compté.
la source
Rubis, 119
Non golfé:
la source