Dada uma sequência que contém apenas letras minúsculas, codifique essa sequência com a cifra do alfabeto.
Para codificar com a cifra do alfabeto (usarei o exemplo hello
):
- Primeiro, converta cada letra da string em um número, dependendo da sua posição no alfabeto (
a
=1
,b
=2
, etc.) Exemplo:8
5
12
12
15
- Coloque cada número com dois caracteres com
0
s. Exemplo:08
05
12
12
15
- Junte-se. Exemplo:
0805121215
Casos de teste
helloworld -> 08051212152315181204
codegolf -> 0315040507151206
alphabetcipher -> 0112160801020520030916080518
johncena -> 1015081403051401
Lembre-se, isso é código-golfe , portanto o código com o menor número de bytes vence.
Respostas:
05AB1E ,
116 bytesCódigo:
Explicação:
Primeiro, convertemos a string em seus valores ASCII.
codegolf
se tornaria:Para chegar aos índices do alfabeto, subtraia
96
:Para preencher com zeros, adicione
100
a cada elemento e remova o primeiro caractere de cada int. Para o exemplo acima,+100
seria:E remover o primeiro caractere de cada um levaria a:
Podemos mesclar os dois passos acima (o
-96
e o+100
) da parte apenas+4
. Para o código:Experimente online!
fonte
¦
faz de novo?Python 2, 42 bytes
Teste em Ideone .
fonte
lambda s:''.join(`ord(x)+4`[1:]for x in s)
Pitão,
1110 bytesTente! Minha primeira vez em Pyth.
Equivalente em Python:
fonte
C,
5543 bytesideona
fonte
printf("%02d",*c++-96);}
é mais curto e válido se não me engano.Python, 46 bytes
Bem direto. Experimente em repl.it!
fonte
Geléia ,
97 bytesTryItOnline
Quão?
fonte
O+4DḊ€FṾ€
a mesma contagem, talvez golfableO+4Ṿ€Ḋ€
economiza 2 bytes.Haskell,
quarentaequatro 3028 bytesUsar a
+4
abordagem da resposta de Adnan economiza 14 bytes.Experimente em Ideone. Uso:
Dois bytes de desconto graças ao xnor . Versão antiga:
fonte
Perl, 29 bytes
28 bytes de código +
-n
sinalizador.Correr com :
fonte
JavaScript (ES6),
5249 bytesA recursão acabou sendo 3 bytes menor que
.replace
:parseInt(s,36)
é um pouco mais longo para cada abordagem, porque você precisa mudar4
para91
:fonte
Japonês, 10 bytes
Provavelmente não fica mais curto que isso ...
Teste online!
Explicação
fonte
Java 7,60 bytes
fonte
char[]
vez de aString
.MATL,
1211 bytes1 byte salvo graças a @Luis
Experimente Online
fonte
Hexagonia , 33 bytes
Experimente Online!
Mm .. tenho algumas no-ops no Hexagon, então eu coloquei a data de hoje.
Formulário expandido com data substituída por no-ops
10
mova o Ponteiro de Memória para algum lugar ...$
pula o espelho e,
lê um byte.<
ramos:-1
que não é positivo) vai@
e finaliza o programa.95
(diminuia
) e depois imprimimosresult / 10
(divisão inteira) e fazemos umresult % 10
loop novamente.fonte
Vim, 60 pressionamentos de tecla
Uma solução quase inteiramente baseada em regex. Como sempre, o uso do registro eval o torna obscenamente longo.
fonte
PHP, 58 bytes
fonte
$argn
47 bytes TIO .PowerShell v2 +, 44 bytes
Pega entrada
$args[0]
, lança como umchar
array, alimenta um loop. A cada iteração, tomamos o$_
módulo de caractere atual32
, que é convertido implicitamente como o valor ASCII. Convenientemente ;-), isso alinha assima = 1, b = 2
, etc. Isso é alimentado no-f
operador ormat, operando na string"{0:D2}"
, que especifica um mínimo de dois dígitos (ou seja, ele precede um zero à esquerda, se necessário). Essas cadeias de dígitos são encapsuladas em parênteses,-join
agrupadas em uma cadeia e deixadas no pipeline. A saída via implícitaWrite-Output
acontece na conclusão do programa.fonte
Perl, 24 bytes
Inclui +1 para
-p
Dê entrada no STDIN:
encode.pl
fonte
4+ord$&
vez de5+ord$&
;-) #exec rev
print
são 5 bytes,<>
são mais 2, então eu queria saber qual era o byte de 1 byte para reverter do qual nunca tinha ouvido falar!DASH , 27 bytes
Exemplo de uso:
Explicação
fonte
Lote,
256239237 bytesRecebe entrada em STDIN.
fonte
Conjunto IBM PC DOS 8088,
3328.27 bytesBinário montado:
Desmontado:
Executável autônomo do PC DOS. String de entrada da linha de comando, saída para o console.
E / S:
fonte
MATL , 11 bytes
Experimente online!
fonte
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}
fonte
R,
7151 bytesEconomizou 20 bytes graças a Billywob. Leva a entrada de stdin e as saídas para stdout.
Exemplos:
fonte
utf8toInt(scan(,"))-96
vez da coisa toda da partida. Não pense que há uma maneira melhor de lidar com o preenchimento.formatC
mais cedo, mas funcionou como necessitando de mais um byte do que a abordagem atual.Na verdade , 10 bytes
Usando o algoritmo puro na resposta 05AB1E de Adnan . Sugestões de golfe são bem-vindas. Experimente online!
Ungolfing
fonte
Groovy, 51 bytes
fonte
Labirinto, 40 bytes
fonte
Befunge-98, 19 bytes
fonte
Groovy - 31 bytes
Conversão groovy da solução da NumberKnot em java:
Exemplo aqui usando várias opções:
http://ideone.com/vd0dTX
fonte
Pyke, 7 bytes
Experimente aqui!
fonte
C #, 54 bytes
fonte