Com base em uma lista de números e suas letras equivalentes, faça uma entrada de sequência, substitua os caracteres dessa sequência pelo número / letra equivalente e produza o resultado.
Lista
- 1 = a
- 2 = b
- 3 = c
- 4 = d
- 5 = e
- 6 = f
- 7 = g
- 8 = h
- 9 = i
- 0 = j
Entrada
thisisastring1124
Resultado
t89s9s1str9n7aabd
Regras
- Os números são equivalentes apenas às letras minúsculas.
- Qualquer caractere fora da lista será deixado como está.
- A sequência de entrada não deve conter espaços.
- É permitido o programa ou a função completa.
- Como é código-golfe, o menor número de bytes vence.
Respostas:
bash, 18 bytes
Experimente online!
fonte
Python 3 ,
7668 bytesExperimente online!
fonte
Perl 5 , 17 bytes
Experimente online!
fonte
05AB1E ,
139 bytesExperimente online!
Explicação
fonte
Perl 6 ,
4523 bytesExperimente online!
Apenas uma regex de transliteração simples.
fonte
TR/1..90a..j/a..j1..90/
tio.run/##K0gtyjH7n1upoJamYKvwvzokSN9QT8/SIFFPL0sfRIB5@rX/...Retina 0.8.2 , 12 bytes
Experimente online! Explicação:
Realize uma transliteração.
A lista de fontes são as letras e
a-j
, em seguida0
, os dígitos9-1
.A lista de destino é a lista de origem invertida, ou seja, os dígitos
1-9
e, em seguida0
, em seguida, as letrasj-a
.fonte
J , 38 bytes
Experimente online!
fonte
Python 2 ,
8278 bytesExperimente online!
-4 com agradecimentos a @ovs
fonte
JavaScript (ES6), 66 bytes
Experimente online!
fonte
R , 40 bytes
Experimente online!
Surpreendentemente, R é decente nesse tipo de desafio de cadeia , porque tem uma
tr
função semelhante à da resposta do Bash . Não faço ideia do porquê, mas sou grato por isso!fonte
MS-SQL, 71 bytes
A nova função SQL 2017
TRANSLATE
realiza a substituição de caracteres individuais, sendo ideal para esse propósito. Veja minha resposta semelhante em um desafio anterior .A entrada é feita através de uma tabela preexistente t com a coluna varchar v , de acordo com nossas regras de IO . Para substituir apenas letras minúsculas, a tabela deve ser criada usando um agrupamento que diferencia maiúsculas de minúsculas :
fonte
Gelatina , 16 bytes
Experimente online!
fonte
Pitão , 13 bytes
Experimente aqui!
Explicação
fonte
Haskell ,
8066 bytesExperimente online!
fonte
REXX, 57 bytes
fonte
C (gcc) ,
8172 bytesObrigado a Giacomo Garabello pelas sugestões.
Experimente online!
fonte
putchar(...)
->*s=...
e outras 4 substituindo*s-48U<11
por*s<59
Experimente online!*s<59
quebra se caracteres como$
estão na entrada, e foi por isso que eu fiz*s-48U
([0..47] se torna [-48 ..- 1], que se torna um grande valor sem sinal.) Como a pergunta não especificou se não -alnums eram válidos, eu fui com a interpretação mais conservadora.Powershell, 94 bytes
Script de teste:
Explicação
$args
- cadeias de argumentos$args|% t*y
- expande para o|ForEach-Object -Method ToCharArray
equivalente a"$args".ToCharArray()
($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_)
- encontre um caractere na string, retorne uma posição ou -1 se não for encontrado. Vamos $ s armazena a string que contém um caractere emparelhado nas posições vizinhas que diferem no último bit: 0 + 1, 2 + 3, 4 + 5 ....if(1+($p=...))
- se a posição foi encontrada$p-bxor1
- posição bit xor 1fonte
-bxor1
.R , 107 bytes
Experimente online!
Primeira tentativa, definitivamente improvável ...
fonte
chartr
é seu amigo aqui, eu acho.Ferrugem , 96 bytes
Experimente online!
Não é seguro para Unicode, se fosse, seria ainda mais longo.
fonte
K4 , 38 bytes
Solução:
Explicação:
Pesquise cada caractere na lista
"abcdefghij1234567890"
e depois indexe na lista"1234567890abcdefghijX"
ondeX
está o caractere original.Precisa encontrar uma maneira mais curta de construir as cordas ...
Bônus:
Outra solução para 38 bytes :
fonte
Yabasic , 135 bytes
Recebe entrada do console e sai para o console.
Experimente online!
fonte
Japonês ,
4442 bytesExperimente online!
fonte
sed, 44 bytes
Um pouco chato, eu admito.
Teste:
fonte