(Signification: convertir l'anglais en Bleet)
Nous louons les chèvres comme dieu depuis des années maintenant.
Mais si nous ne pouvons pas traduire l'anglais en «Bleet», la langue du Dieu bouc, nous ne pouvons pas communiquer avec eux.
Donc, pour communiquer avec eux, nous avons recherché les activités des chèvres et récupéré ce modèle, qui est au cœur de la langue.
Dites «Bleet» pour la longueur de chaque mot. Cela signifie que le nombre de «e» doit être (longueur-3) pour les mots de plus de 3 lettres. Vous devez réduire «Bleet» pour les mots plus courts que «Blt». Par exemple, «be» devient «bl», mais «cat» et «boat» devient «blt» et «blet».
Comme il semble, ils ne changent pas réellement les caractères non alphabétiques en «Bleet». Nos recherches ont montré que "Bonjour, monde!" pour Bleet, c'est «Bleet, Bleet! pas «Bleeet Bleeet». De plus, les chèvres ne sont pas si intelligentes (sans offense), donc elles ne semblent pas comprendre du tout les caractères non-ascii ou les signes diacritiques.
Maintenant, il est temps de faire un traducteur pour communiquer avec les dieux de chèvre.
Bleeeeet (Signification: exemples)
Hello, World! => Bleet, Bleet!
lorem ipsum dolor sit amet. => Bleet Bleet Bleet Blt Blet.
We praise the Goat God! => Bl Bleeet Blt Blet Blt!
I have a pen => B Blet B Blt
0123456789_ => 0123456789_
0te_st1 => 0Bl_Bl1
it's
devenirBlt
ouBl't
ouBl'B
?Jimmy's
:Bleee't
), les traiter comme des séparations de mots (Jimmy's
:Bleet'B
), ou de les traiter dans le cadre de mots (Jimmy's
:Bleeeet
). Si je devais en choisir un, j'irais avec l'option de séparateur de mots, car c'est ce que font les 6 réponses.Réponses:
Rétine , 31 octets
Essayez-le en ligne!
Explication
Transformez toutes les lettres en
e
art.Transformez le premier
e
de chaque manche enB
.Transformez
Be
enBl
.Transformez le dernier
e
de chaque manche ent
.la source
T1L
laT
scène "enveloppe" les paires de traduction afin que vous puissiez transformer toutes les lettres comme ça ene
l
, pas un1
, mais je ne suis pas sûr de ce que vous entendez par "wrap". La translittération répète simplement le dernier caractère du motif cible, donc si c'était le casT`lL`ef
, vous mapperieza
verse
et toutes les autres lettres versf
, pas alternativement verse
etf
.JavaScript (ES6),
797774 octetsApproche alternative, actuellement
8378 octets:Le mieux que j'ai pu faire récursivement était de 88 octets:
la source
'Blet'[i>1?2+!x[i+1]:i]
mais malheureusement c'est la même longueur.PHP,
11588867775 octetspreg_replace
avec des tableaux (nécessite PHP 5.4 ou version ultérieure)Exécutez-le
echo '<string>' | php -nR '<code>'
ou testez-le en ligne .panne
Révision 5: sauvegarde de 9 octets avec la chaîne d'expression régulière de Martin Ender .
(Cela a également corrigé les cas avec des caractères de mots non alphabétiques = chiffres / traits de soulignement.)
la source
Haskell ,
135128 octetsEssayez-le en ligne! Utilisation
(""!) $ "some string"
. Sans regex, cela s'est avéré être assez long, peut-être qu'une autre approche est plus courte. Edit: 7 octets enregistrés grâce à @nimi!la source
b
àa
vous pouvez l' appliquer immédiatement lors de la construction de la chaîne résultante et omettre la finale=<<
:b!(l:t)|...|1<3=a b++l:""!t;b!_=a b;(""!)
.Perl 5 , 47 octets
15 octets enregistrés en utilisant la même technique que la réponse Retina de Martin Ender . (Cette réponse est essentiellement un portage de sa réponse maintenant)
46 octets de code +
-p
indicateur.Essayez-le en ligne!
Versions antérieures: 62 octets:
Et 68 octets:
la source
PHP, 84 octets
PHP, 117 octets
la source
-1+$l=...
\bl
échoue pour les caractères de mot non alphabétiques:_we_
. Vous avez besoin d' une affirmation explicite:(?<!l)l
. Idem poure\b
->e(?!e)
(+7 octets)C,
120151140111108105104 1049290 octetsTravailler pour "It's Jimmy's test" -> Bl'B Bleet'B Blet
La sortie est maintenant un effet secondaire en détruisant la chaîne d'origine.
Je pense que c'est correct au moins maintenant
la source
Python 2,7,
129118114109959188 octetsJuste une
re.sub
chaînePas à pas
Exemple d'entrée: " Nous louons le Dieu bouc! "
Sous-alias afin que nous puissions économiser des octets sur les appels répétés
Remplacez tous les caractères du mot par "e"
s("\w","e",i)
Production:
ee eeeeee eee eeee eee!
Remplacez tous les «e» précédés d'une limite de mot (début du mot) par «B»
s(r"\be","B",s("\w","e",i))
Production:
Be Beeeee Bee Beee Bee!
Remplacez tous "Be" par "Bl"
s("Be","Bl",s(r"\be","B",s("\w","e",i)))
Production:
Bl Bleeee Ble Blee Ble!
Remplacez tous les «e» qui sont suivis d'une limite de mot par «t»
s(r"e\b","t",s("Be","Bl",s(r"\be","B",s("\w","e",i))))
Production:
Bl Bleeet Blt Blet Blt!
la source
return
parprint
devrait économiser un octet.r
des chaînes brutes s'il n'y a pas de jeu en retour, ce qui permet d'économiser 3 octetsr
) et je l'ai réduit à 95 octets. Merci pour la suggestion!Pip , 28 octets
Prend l'entrée comme argument de ligne de commande. Essayez-le en ligne!
Explication
C'était amusant - j'ai pu utiliser des modificateurs d'expression régulière et l'interpolation de chaînes.
la source
Python 3, 271 octets
Je sais que c'est assez long et j'accueille favorablement les suggestions sur la façon de réduire la longueur.
la source
x.append(y)
ou dans votre cas,a(x,y)
vous pouvez le fairex+=y,
(virgule requise)empilés , 57 octets
Essayez-le en ligne!Prend l'entrée du haut de la pile.
Soit a ( n ) = A136412 ( n - 2) = (5 × 4 n - 2 + 1) ÷ 3. Conversion de a ( n ) en base 4 donne:
Mappage des indices 0..3 à la chaîne
Blet
, nous obtenons:Maintenant, le préfixe
B
nous donne la chaîne souhaitée, compte tenu de la longueur. La plupart. Il suffit de gérer les cas spéciaux pour n ≤ 2. Dans mon cas, cela est résolu en soustrayant ( n - 2 <1) comme un booléen numérique (1 pour "vrai" et 0 pour "faux").Quant aux détails de la réponse:
la source
Python 2 ,
137114 octetsEssayez-le en ligne!
la source
Java 7, 201 octets
Pas vraiment content, et peut certainement être joué au golf encore plus ..
Explication:
Code de test:
Essayez-le ici.
Production:
la source
s.split("")
au lieu d'ens.toCharArray()
sauver, je croisx=c&~32
ne fonctionnera pas sur une chaîne et lesx>64&x<91
deux ne fonctionneront plus). Si vous pouvez le raccourcir avec la séparation, faites-le moi savoir.05AB1E , 36 octets
Essayez-le en ligne! ou comme suite de tests
Explication
Préparez l'entrée:
Cela crée une liste telle que
['hello', ', ', 'world', '!']
pour l'entréeHello, World!
Itérer sur la liste:
la source