Dada una cadena que contiene solo letras minúsculas, codifique esa cadena con el cifrado del alfabeto.
Para codificar con el cifrado del alfabeto (usaré el ejemplo hello
):
- Primero, convierta cada letra de la cadena en un número dependiendo de su posición en el alfabeto (
a
=1
,b
=2
, etc.) Ejemplo:8
5
12
12
15
- Rellene cada número con dos caracteres con
0
s. Ejemplo:08
05
12
12
15
- Unirse. Ejemplo:
0805121215
Casos de prueba
helloworld -> 08051212152315181204
codegolf -> 0315040507151206
alphabetcipher -> 0112160801020520030916080518
johncena -> 1015081403051401
Recuerde, este es el código golf , por lo que gana el código con el menor número de bytes.
Respuestas:
05AB1E ,
116 bytesCódigo:
Explicación:
Primero, convertimos la cadena a sus valores ASCII.
codegolf
se convertiría:Para llegar a los índices del alfabeto, resta
96
:Para rellenar con ceros, agregue
100
a cada elemento y elimine el primer carácter de cada int. Para el ejemplo anterior,+100
sería:Y eliminar el primer carácter de cada uno conduciría a:
Podemos fusionar ambos pasos anteriores (la
-96
y la+100
parte) a solo+4
. Para el código:Pruébalo en línea!
fuente
¦
nuevo?Python 2, 42 bytes
Pruébalo en Ideone .
fuente
lambda s:''.join(`ord(x)+4`[1:]for x in s)
Pyth,
1110 bytes¡Intentalo! Mi primera vez en Pyth.
Python equivalente:
fuente
C,
5543 bytesideona
fuente
printf("%02d",*c++-96);}
es más corto y válido si no me equivoco.Python, 46 bytes
Muy claro. Pruébalo en repl.it!
fuente
Jalea ,
97 bytesTryItOnline
¿Cómo?
fuente
O+4DḊ€FṾ€
el mismo recuento, quizás golfableO+4Ṿ€Ḋ€
ahorra 2 bytes.Haskell,
cuarentaycuatro 3028 bytesUsar el
+4
enfoque de la respuesta de Adnan ahorra 14 bytes.Pruébalo en Ideone. Uso:
Dos bytes de descuento gracias a xnor . Versión antigua:
fuente
Perl, 29 bytes
28 bytes de código +
-n
bandera.Corre con :
fuente
JavaScript (ES6),
5249 bytesLa recursión resultó ser 3 bytes más corta que
.replace
:parseInt(s,36)
es un poco más largo para cada enfoque, porque debe cambiar4
a91
:fuente
Japt, 10 bytes
Probablemente no se acorte más que esto ...
¡Pruébalo en línea!
Explicación
fuente
Java 7,60 bytes
fuente
char[]
lugar de unaString
.MATL,
1211 bytes1 byte guardado gracias a @Luis
Pruébalo en línea
fuente
Hexagonía , 33 bytes.
Pruébalo en línea!
Mm ... conseguí algunas no-operaciones en el Hexágono, así que puse la fecha de hoy.
Formulario ampliado con fecha reemplazada por no-ops
10
mueva el puntero de memoria a algún lugar ...$
salta el espejo y,
lee un byte.<
ramas:-1
que no es positivo) va@
y termina el programa.95
(disminuyea
), y luego imprimimosresult / 10
(división entera) y volvemos aresult % 10
repetir.fuente
Vim, 60 pulsaciones de teclas
Una solución casi completamente basada en expresiones regulares. Como de costumbre, el uso del registro eval lo hace obscenamente largo.
fuente
PHP, 58 bytes
fuente
$argn
47 bytes TIO .PowerShell v2 +, 44 bytes
Toma datos
$args[0]
, loschar
convierte como una matriz, se alimenta en un bucle. En cada iteración, tomamos el$_
módulo de caracteres actual32
, que se convierte implícitamente como el valor ASCII. Convenientemente ;-), esto se alinea asía = 1, b = 2
, etc. Eso alimenta al-f
operador ormat, operando en cadena"{0:D2}"
, que especifica un mínimo de dos dígitos (es decir, antepone un cero a la izquierda si es necesario). Esas cadenas de dígitos se encapsulan en parens, se-join
juntan en una sola cadena y se dejan en la tubería. La salida a través de lo implícitoWrite-Output
ocurre al final del programa.fuente
Perl, 24 bytes
Incluye +1 para
-p
Dar entrada en STDIN:
encode.pl
fuente
4+ord$&
lugar de5+ord$&
aunque ;-)exec rev
print
son 5 bytes,<>
son 2 más, así que me preguntaba cuál era el 1 byte incorporado para revertir, ¡no había oído hablar!DASH , 27 bytes
Ejemplo de uso:
Explicación
fuente
Lote,
256239237 bytesToma entrada en STDIN.
fuente
Ensamblaje IBM PC DOS 8088,
332827 bytesBinario ensamblado:
Desmontado:
PC independiente ejecutable de DOS. Cadena de entrada desde la línea de comando, salida a la consola.
E / S:
fuente
MATL , 11 bytes
Pruébalo en línea!
fuente
Ruby,
5346 bytes->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}
fuente
R,
7151 bytesAhorró 20 bytes gracias a Billywob. Toma entradas de stdin y salidas a stdout.
Ejemplos:
fuente
utf8toInt(scan(,"))-96
lugar de todo el partido. Sin embargo, no creo que haya una mejor manera de manejar el relleno.formatC
antes, pero resultó que necesitaba un byte más que el enfoque actual.En realidad , 10 bytes
Usando el algoritmo ordenado en la respuesta 05AB1E de Adnan . Sugerencias de golf bienvenidas. Pruébalo en línea!
Ungolfing
fuente
Groovy, 51 Bytes
fuente
Laberinto, 40 bytes
fuente
Befunge-98, 19 bytes
fuente
Groovy - 31 bytes
Conversión maravillosa de la solución de NumberKnot en Java:
Ejemplo aquí usando varias opciones:
http://ideone.com/vd0dTX
fuente
Pyke, 7 bytes
Pruébalo aquí!
fuente
C #, 54 bytes
fuente