Tâche
Votre tâche consiste à convertir un texte en orthographe médiévale.
Détails
j
est converti eni
etJ
enI
.u
etU
au début des mots sont convertis env
etV
respectivement.v
etV
n'importe où sauf le début des mots sont convertis enu
etU
respectivement.s
est converti enſ
(U + 017F) sauf si à la fin du mot ou précédé d'un autres
.
Spécifications
- Un mot est défini comme une séquence de lettres en
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
. - Tous les mots auront au moins deux lettres.
- L'entrée sera uniquement composée de caractères ASCII imprimables (U + 0020 - U + 007E).
- Il ne se produira pas plus de deux événements consécutifs
s
. Autrement dit,sss
ne sera pas une sous-chaîne de l'entrée.
Cas de test
Mots individuels:
Input Output
------------------------
Joy Ioy
joy ioy
Universe Vniuerſe
universe vniuerſe
Success Succeſs
successfull ſucceſsfull
Supervise Superuiſe
supervise ſuperuiſe
Super-vise Super-viſe
I've I've
majors maiors
UNIVERSE VNIUERSE
0universe 0vniuerſe
0verify 0verify
I0ve I0ve
_UU_ _VU_
_VV_ _VU_
ss_ ſs_
Paragraphe entier:
Input: Christian Reader, I have for thy use collected this small Concordance, with no small labour. For being to comprise much in little roome, I was to make choyse of the most principall and usefull places, and to rank them under such words as I thought most essentiall and materiall in the sentence, because the scant roome allotted unto me, would not permit that I should expresse them under every word in the verse, as it is the manner in large Concordances.
Output: Chriſtian Reader, I haue for thy vſe collected this ſmall Concordance, with no ſmall labour. For being to compriſe much in little roome, I was to make choyſe of the moſt principall and vſefull places, and to rank them vnder ſuch words as I thought moſt eſsentiall and materiall in the ſentence, becauſe the ſcant roome allotted vnto me, would not permit that I ſhould expreſse them vnder euery word in the verſe, as it is the manner in large Concordances.
Le hachage SHA-256 de la sortie du dernier testcase est:
5641899e7d55e6d1fc6e9aa4804f2710e883146bac0e757308afc58521621644
Avertissement
L'orthographie médiévale n'est pas si conſtante. Nous vous prions de ne pas nous plaindre si vous devez réserver des livres anciens avec une orthographie différente.
ſ
comme 1 octet?Super-vise
devenirSuper-viſe
?Réponses:
SED,
144 140111 octetsenregistré 29 octets grâce à NoOneIsHere
la source
-e
. Utilisez;
s entre les instructions.Python 3 (
128126 octets)chr(ord(c.group())^3)
semble excessif pour xor une chaîne à un seul caractère, mais peut-être qu'un vrai Pythonista peut suggérer un golf. Cependant, c'est très pratique qui^3
suffit pour échangeri <-> j
etu <-> v
.NB La seule chose ici qui nécessite Python 3 est le caractère Unicode: Python 2 se plaint
Non-ASCII character '\xc5' <snip> but no encoding declared
.la source
\b
car\b
utilise la définition d'un mot qui comprend des chiffres et des traits de soulignement.(?i)
.Rétine ,
555450 octetsEssayez-le en ligne! (La première ligne active une suite de tests séparée par saut de ligne.)
la source
Python 3.5,
124116111118125144142 octets:Eh bien, cela semble être le travail parfait pour les expressions régulières !
la source
J|j
place de[Jj]
JavaScript (ES6), 154
Utilisation de parseInt pour identifier les caractères alphabétiques. Remarque: nonchalamment mais heureusement
parseInt('undefined',36)|0
est <0Moins golfé
Tester
la source
JavaScript (ES6), 111 octets
Explication: Parce que l'expression rationnelle JavaScript n'a pas de lookbehind, je décompose la chaîne en mots, ce qui me permet ensuite d'utiliser
^
et\B
comme lookbehinds de lettres négatives et positives.ss
est traitée par correspondance séparément, avec l'expression de remplacement légèrement maladroite qui prend moins d'octets que soit en remplaçant uniquement le premier caractère dec
ou en ajoutant un suppléments
aux deux chaînes et en utilisant la sous-chaîne correspondante.la source
c=>"iIvVuUſ"["jJuUvVs".search(c)]||"ſs"
est sympa. 👍🏻CJam (
8988 octets)Démo en ligne
Je n'ai jamais compris pourquoi CJam n'a pas d'expressions régulières, mais comme ce n'est pas le cas, voici une solution qui ne les utilise pas.
la source
Ruby, 85 + 1 = 86 octets
Exécutez avec
ruby -p
(+1 octet pour lep
drapeau). Prend une entrée sur stdin.Exécutez les tests sur ideone (enveloppé dans un lambda car vous ne pouvez pas donner de drapeaux à ideone): http://ideone.com/AaZ8ya
la source