Cette tâche est assez simple et utilise trois caractères "d'opérateur" distincts. Votre tâche est, étant donné une simple séquence de lettres, effectuer la tâche suivante pour encoder en utilisant <
, >
, *
. Vous pouvez choisir d'utiliser des lettres majuscules ou minuscules, vous n'avez pas à gérer les deux.
Explication du chiffre
Le chiffrement est simple, vous utilisez des opérations d'incrémentation et de décrémentation pour passer de la lettre 1 à la lettre de fin, en *
étant votre fonction "soumettre". L'opérateur pour "incrémenter" sera >
et "décrémenter" sera <
.
Un exemple utilisant le mot adbc
:
- Commencez par la première lettre du mot, sortez cette lettre.
a
- Ensuite, utilisez
>
et<
(comme brainfuck) pour "naviguer" de la lettre actuelle à la suivante.a>
entraînerait une «augmentation»a
de 1 à la lettreb
.a<
entraîneraitz
parce que vous abaissez la lettre (il encapsule, vous devez toujours choisir la direction résultant dans le nombre MOINS d'opérations). - Après avoir sorti la combinaison minimisée correcte de
<
et>
sorti un*
pour indiquer que nous avons atteint la lettre suivante.
Les étapes à coder adbc
seraient les suivantes:
a # a
a>>>* # ad
a>>>*<<* # adb
a>>>*<<*>* # adbc
Exemples
Les étapes à coder aza
seraient les suivantes:
a # a
a<* # az
a<*>* # aza
Plus d'exemples:
"abcdef" = "a>*>*>*>*>*"
"zyaf" = "z<*>>*>>>>>*"
"zzzzzz" = "z*****"
"z" = "z"
"zm" = "z<<<<<<<<<<<<<*" or "z>>>>>>>>>>>>>*" (equidistant)
"zl" = "z>>>>>>>>>>>>*"
"alphabet" = "a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*"
"banana" = "b<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*" OR "b<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*"
"abcdefghijklmnopqrstuvwxyz" = "a>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*"
"abcdefz" = "a>*>*>*>*>*<<<<<<*"
Règles
- Nous n'encodons pas, nous ne décodons donc pas.
- Vous pouvez supposer que le message contiendra des lettres
[A-Z]
ou[a-z]
, votre choix. - Vous pouvez utiliser n'importe quel caractère non-lettre / numérique / réservé pour indiquer
*
(EG$
). - Vous devez avoir la fin
*
, ce n'est pas implicite sur les répétitions. - Vous ne pouvez supposer aucune chaîne vide, mais un seul caractère est possible.
- S'il est équidistant dans un sens ou dans l'autre jusqu'à la lettre suivante, vous pouvez choisir une direction.
- Il s'agit du code-golf , le plus petit nombre de victoires d'octets.
Veuillez expliquer votre réponse, cela aide les autres à apprendre de cette façon.
zl
devrait utiliser >
.
alphabet
est à mon avis a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*
et zl
devrait être z>>>>>>>>>>>>*
et pour banana
si une deuxième solution existeb<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*
zm
. @jorg de bonnes captures, toutes corrigées, était un effort manuel.
abcdefghijklmnopqrstuvwxyz
et n'est pas sa propre entrée?