Étant donné une chaîne qui ne contient que des lettres minuscules, codez cette chaîne avec le chiffre de l'alphabet.
Pour encoder avec le chiffre de l'alphabet (je vais utiliser l'exemple hello
):
- Tout d'abord, convertissez chaque lettre de la chaîne en un nombre en fonction de sa position dans l'alphabet (
a
=1
,b
=2
, etc.) Exemple:8
5
12
12
15
- Remplissez chaque nombre de deux caractères avec
0
s. Exemple:08
05
12
12
15
- Joindre. Exemple:
0805121215
Cas de test
helloworld -> 08051212152315181204
codegolf -> 0315040507151206
alphabetcipher -> 0112160801020520030916080518
johncena -> 1015081403051401
N'oubliez pas qu'il s'agit de code-golf , donc le code avec le moins d'octets gagne.
Réponses:
05AB1E ,
116 octetsCode:
Explication:
Tout d'abord, nous convertissons la chaîne en leurs valeurs ASCII.
codegolf
deviendrait:Pour accéder aux index de l'alphabet, vous soustrayez
96
:Pour ajouter des zéros, ajoutez
100
à chaque élément et supprimez le premier caractère de chaque entier. Pour l'exemple ci-dessus,+100
serait:Et la suppression du premier caractère de chacun entraînerait:
Nous pouvons fusionner les deux étapes ci-dessus (la
-96
et la+100
) partie juste+4
. Pour le code:Essayez-le en ligne!
la source
¦
encore?Python 2, 42 octets
Testez-le sur Ideone .
la source
lambda s:''.join(`ord(x)+4`[1:]for x in s)
Pyth,
1110 octetsEssayez! Mon premier rendez-vous chez Pyth.
Équivalent Python:
la source
C,
5543 octetsideone
la source
printf("%02d",*c++-96);}
est plus court et valide si je ne me trompe pas.Python, 46 octets
Assez simple. Essayez-le sur repl.it!
la source
Gelée ,
97 octetsTryItOnline
Comment?
la source
O+4DḊ€FṾ€
le même nombre, peut-être golfableO+4Ṿ€Ḋ€
enregistre 2 octets.Haskell,
quarante-quatre 3028 octetsEn utilisant le
+4
approche de la réponse d' Adnan permet d'économiser 14 octets.Essayez-le sur Ideone.Usage:
Deux octets de moins grâce à xnor . Ancienne version:
la source
Perl, 29 octets
28 octets de code +
-n
indicateur.Courir avec :
la source
JavaScript (ES6),
5249 octetsLa récursivité s'est avérée être 3 octets plus courte que
.replace
:parseInt(s,36)
est légèrement plus long pour chaque approche, car vous devez passer4
à91
:la source
Japt, 10 octets
Probablement pas plus court que ça ...
Testez-le en ligne!
Explication
la source
Java 7,60 octets
la source
char[]
au lieu d'unString
.MATL,
1211 octets1 octet enregistré grâce à @Luis
Essayez-le en ligne
la source
Hexagonie , 33 octets
Essayez-le en ligne!
Mm .. a eu quelques no-ops dans l'Hexagone donc j'ai mis la date d'aujourd'hui.
Formulaire étendu avec date remplacée par aucune opération
10
et déplacer le pointeur de mémoire quelque part ...$
saute le miroir et,
lit un octet.<
branches:-1
qui n'est pas positive) passe à@
et termine le programme.95
(décrémentéa
), puis nous imprimonsresult / 10
(division entière) etresult % 10
et bouclons à nouveau.la source
Vim, 60 touches
Une solution basée presque entièrement sur les regex. Comme d'habitude, l'utilisation du registre eval le rend incroyablement long.
la source
PHP, 58 octets
la source
$argn
47 octets TIO .PowerShell v2 +, 44 octets
Prend l'entrée
$args[0]
, lachar
transforme en tableau, alimente une boucle. À chaque itération, nous prenons le$_
modulo de caractère actuel32
, qui est implicitement converti en valeur ASCII. Idéalement ;-), ces lignes de façon à cea = 1, b = 2
, etc. qui se nourrissaient dans l'-f
opérateur Ormat, fonctionnant sur chaîne"{0:D2}"
, qui spécifie un minimum de deux chiffres (elle est précédée d' un chef de file si nécessaire zéro). Ces chaînes de chiffres sont encapsulées dans des parens, éditées-join
ensemble en une seule chaîne et laissées sur le pipeline. La sortie via impliciteWrite-Output
se produit à la fin du programme.la source
Perl, 24 octets
Comprend +1 pour
-p
Donnez votre avis sur STDIN:
encode.pl
la source
4+ord$&
au lieu de5+ord$&
bien ;-)exec rev
print
y a 5 octets,<>
c'est 2 de plus, alors je me demandais quel était le 1 octet intégré à inverser dont je n'avais pas entendu parler!DASH , 27 octets
Exemple d'utilisation:
Explication
la source
Lot,
256239237 octetsPrend entrée sur STDIN.
la source
IBM PC DOS 8088 Assembly,
332827 octetsBinaire assemblé:
Non assemblé:
Exécutable PC DOS autonome. Chaîne d'entrée depuis la ligne de commande, sortie vers la console.
E / S:
la source
MATL , 11 octets
Essayez-le en ligne!
la source
Rubis,
5346 octets->s{s.chars.map{|c|(c.ord-96).to_s.rjust(2,?0)}.join}
->s{s.chars.map{|c|(c.ord+4).to_s[1..2]}.join}
la source
R,
7151 octetsEnregistré 20 octets grâce à Billywob. Prend les entrées de stdin et les sorties vers stdout.
Exemples:
la source
utf8toInt(scan(,"))-96
place de tout le match. Ne pensez pas qu'il existe une meilleure façon de gérer le rembourrage.formatC
plus tôt, mais cela fonctionnait comme nécessitant un octet de plus que l'approche actuelle.En fait , 10 octets
Utilisation de l'algorithme soigné dans la réponse 05AB1E d'Adnan . Suggestions de golf bienvenues. Essayez-le en ligne!
Ungolfing
la source
Groovy, 51 octets
la source
Labyrinthe, 40 octets
la source
Befunge-98, 19 octets
la source
Groovy - 31 octets
Conversion Groovy de la solution de NumberKnot en java:
Exemple ici utilisant différentes options:
http://ideone.com/vd0dTX
la source
Pyke, 7 octets
Essayez-le ici!
la source
C #, 54 octets
la source