Il est temps de relever un nouveau défi typographique ! C'est un problème courant lors du copier-coller entre différents formats de document: la césure. Bien qu'il réduise les irrégularités d'une mise en page alignée à gauche ou égalise l'espacement dans une mise en page justifiée, c'est une douleur complète lorsque votre PDF n'est pas correctement construit et conserve les tirets dans la mise en page, ce qui rend votre texte copié difficile à modifier ou à refaire.
Heureusement, si l'on en croit les innombrables livres d'auto-assistance, rien n'est un problème si vous le voyez comme un défi. Je crois que ces livres d'auto-assistance font sans exception référence à PPCG, où tout problème sera résolu s'il est présenté comme un défi. Votre tâche consiste à supprimer la césure et les sauts de ligne incriminés d'un texte, afin qu'il soit prêt à être collé dans n'importe quel éditeur de texte.
Description du problème
Vous écrirez un programme ou une fonction qui supprime la césure et les sauts de ligne, le cas échéant. L' entrée sera une chaîne stdin
(ou l'alternative la plus proche) ou une entrée de fonction. La sortie ( sortiestdout
alternative ou fonction la plus proche ou la plus proche) sera le texte «corrigé». Ce texte doit être directement copiable-collable. Cela signifie que la sortie de début ou de fin est correcte, mais la sortie supplémentaire à mi-chemin de votre texte corrigé (par exemple, les espaces de début sur chaque ligne) ne l' est pas .
Le cas le plus élémentaire est le suivant (remarque: pas d'espaces de fin)
Lorem ipsum dolor sit amet, con-
sectetur adipiscing elit. Morbi
lacinia nisi sed mauris rhoncus.
Le trait d'union et les sauts de ligne incriminés doivent être supprimés pour
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus.
Cependant, quelques exceptions doivent être observées.
- Les doubles sauts de ligne indiquent un saut de paragraphe et doivent être conservés.
- Les noms et noms corrects ne sont jamais coupés sur deux lignes, sauf s'ils contiennent déjà un trait d'union (par exemple les équations de Navier-Stokes). Le saut de ligne doit être supprimé, mais le trait d'union conservé. Ces cas peuvent être identifiés en ne mettant en majuscule que la première lettre.
- Parfois, un tiret indique un groupe de mots (par exemple, XIXe et XXe siècles). Lorsque cela se produit sur deux lignes, cela est indiqué par un espace de tête sur la ligne suivante.
Un exemple: (les opinions exprimées dans cet exemple sont fictives et ne représentent pas nécessairement le point de vue de l'auteur; les opposants à la méthode Runge-Kutta-Fehlberg sont également les bienvenus pour participer à ce défi)
Differential equations can
be solved with the Runge-Kutta-
Fehlberg method.
Developed in the nineteenth-
or twentieth century, this
method is completely FANTAS-
TIC.
va devenir
Differential equations can be solved with the Runge-Kutta-Fehlberg method.
Developed in the nineteenth- or twentieth century, this method is completely FANTASTIC.
Les sauts de ligne peuvent être le point de code ASCII \n
ou \r\n
selon votre préférence, et le tiret est un simple ASCII -
(signe moins). La prise en charge UTF-8 n'est pas requise. Ce défi est le golf de code , donc le code le plus court gagne.
la source
GNU Sed, 68
Le score inclut +2 pour les
-zr
options transmises àsed
.Suppose que le flux d'entrée ne contient aucun
:
caractère. Si cela n'est pas acceptable, alors les:
'dans le code peuvent être tous remplacés par un autre caractère ASCII non imprimable, par exemple 0x7 BEL.la source
TeaScript , 76 octets
Méthode très "brutale".
Essayez-le en ligne
la source