Le problème avec le chiffre César est que les mots résultants sont souvent imprononçables. Le problème avec Pig Latin est qu'il est facile à décoder. Pourquoi ne pas les combiner?
Contribution
Un mot composé des 26 lettres anglaises.
Sortie
Tout d'abord, changez chaque consonne du mot par la consonne suivante de l'alphabet. Donc, b va à c, d va à f et z va à b. Ensuite, changez chaque voyelle en voyelle suivante dans l'alphabet (u va à a). Enfin, seulement si la première lettre du mot est une consonne, déplacez cette lettre à la fin du mot et ajoutez "ay" à la fin du mot.
Exemples:
cat -> evday
dog -> uhfay
eel -> iim
- C'est le code-golf , donc le code le plus court l'emporte.
- L'affaire n'a pas d'importance.
- Les voyelles qui seront utilisées sont A, E, I, O et U
z → bay
the → jivay
? (Autrement dit, si le mot commence par plusieurs consonnes, ne déplaçons-nous qu'une seule d'entre elles?)Réponses:
Stax , 20 octets
Exécuter et déboguer
Explication
J'ai parcouru quelques itérations et finalement je suis descendu à 20. Ma solution d'origine était de 53 octets.
la source
Ruby ,
9669 octetsEssayez-le en ligne!
Fait amusant du jour: tr () correspond aux chaînes de droite à gauche. J'ai toujours pensé que c'était de gauche à droite.
la source
R ,
8685 octetsManière simple.
chartr
a la propriété charmante et utile qu'il peut spécifier la lettre plages de , ce qui économise quelques octets.-1 octets en volant les chaînes de traduction de la solution Ruby de @ GB - votez pour!
Essayez-le en ligne!
la source
Java (JDK) , 167 octets
Essayez-le en ligne!
Crédits
la source
05AB1E , 21 octets
Essayez-le en ligne!
Explication
la source
Node.js 10.9.0 ,
121116 octetsAttend la chaîne d'entrée en minuscules.
Essayez-le en ligne!
Identifier les voyelles
Et fait:
Commenté
la source
Python 2 ,
1531211109991 octetsEssayez-le en ligne!
8 octets rasés grâce à une suggestion de Matthew Jensen
la source
lambda s:[s[1:]+s[0]+"ux",s][s[0]in'aeiou'].translate(8*".ecdfighjoklmnpuqrstvawxyzb.....")
translate
en Python 2 ...T-SQL, 169 octets
L'entrée se fait via une table préexistante, selon nos normes IO .
Effectue la substitution de caractères en premier, en utilisant le ( nouveau dans SQL 2017 )
TRANSLATE
, puis vérifie le premier caractère.Long ennuyeux, principalement en raison de la longueur des mots clés SQL.
la source
Script shell, 70 octets
Essayez-le en ligne!
la source
Haskell ,
10297 octetsEssayez-le en ligne!
la source
Retina 0.8.2 , 50 octets
Essayez-le en ligne! Le lien inclut des cas de test. Approche similaire à la réponse R. Explication:
o
fait référence à l'autre ensemble, c'est-à-direaei\oub-df-hj-np-tv-zb
qui se développe enaeioubcdfghjlkmnpqrstvwxyzb
, seuo
développe donc enuaeioubcdfghjlkmnpqrstvwxyzb
. Il en résulte la translittération suivante:Les seconds
u
etb
sont ignorés car ils ne peuvent jamais être mis en correspondance, donc cela fournit le chiffrement souhaité. (Notez que dans Retina 1, vous pouvez bien sûr utiliserv
au lieu deaei\ou
pour une économie de 5 octets.)Si la première lettre n'est pas une voyelle, faites-la pivoter jusqu'à la fin et suffixez
ay
.la source
Gelée , 24 octets
Essayez-le en ligne!
1 octet enregistré grâce à Jonathan Allan (utilisez la syntaxe à deux caractères plutôt que des guillemets).
la source
⁾ay
pour un octet. Le©
pourrait aller aprèse
puisque c'est ce que vous stockez. Je l'aiØẹØḄ,żṙ€¥1ẎyṙḢe©ØḄƊ®⁾ayẋ
.> <> ,
9492 octetsEssayez-le en ligne!
Edit: sauvé 2 octets en prenant le mod d'entrée 97 plutôt que 32, afin que le dictionnaire puisse commencer au début de la ligne. La version précédente:
la source
Rouge , 149 octets
Essayez-le en ligne!
Comme (presque) toujours, l'entrée la plus longue
la source
F # (Mono) , 197 octets
Essayez-le en ligne!
la source
Perl 5 , 56 octets
Essayez-le en ligne!
la source
-
s entrec
etd
oug
eth
?<s>58</s> 56 bytes
dans l'en-tête et beaucoup de gens ajoutent un "Edit: Saved 2 bytes grace to @Neil". ou certains tels quand ils sont aidés dans un commentaire.Dyalog APL (SBCS), 57 octets
Essayez-le en ligne!
Prend la saisie en majuscules uniquement! (Parce que l'
⎕A
alphabet est en majuscule)⎕A{(⍺~⍵)⍵}'AEIOU'
: Vecteur de consonnes et voyelles(⊂⍵⍳⍨∊a)⌷∊1⌽¨a
: Utilise les index de chaque lettre du mot dans l'alphabet normal (⊂⍵⍳⍨∊a
) pour indexer (⌷
) dans le chiffre∊1⌽¨a
.('AY',⍨1⌽⊢)⍣(∊/⊃¨⍵a)
: Déplace la première lettre à la fin et ajoute «AY», si la première lettre est une consonne.Merci pour le défi cool!
la source
JavaScript (SpiderMonkey) , 107 octets
Essayez-le en ligne!
Attend l'entrée en minuscules.
Remplace chaque caractère de la chaîne par un celui qui le suit dans la chaîne
'aeiouabcdfghjklmnpqrstvwxyzb'
, puis piglatinifie tout ce qui a une consonne initiale.la source
PHP, 112 octets
ou
supposer une entrée en minuscules. Exécuter en tant que pipe avec
-nR
ou essayez-les en ligne .Vous pourriez aussi bien utiliser
strtr($s,uzbcadfgehjklminpqrsotvwxy,range(a,z))
au lieu destrtr($s,range(a,z),ecdfighjoklmnpuqrstvawxyzb)
.la source