Basado en una lista de números y sus letras equivalentes, tome una entrada de cadena, reemplace los caracteres de esa cadena con el número / letra equivalente y envíe el resultado.
Lista
- 1 = a
- 2 = b
- 3 = c
- 4 = d
- 5 = e
- 6 = f
- 7 = g
- 8 = h
- 9 = i
- 0 = j
Entrada
thisisastring1124
Salida
t89s9s1str9n7aabd
Reglas
- Los números son equivalentes a letras minúsculas solamente.
- Cualquier personaje fuera de la lista se dejará como está.
- La cadena de entrada no debe contener espacios.
- Se permite el programa completo o la función.
- Como se trata de código de golf, gana menos bytes.
Respuestas:
bash, 18 bytes
Pruébalo en línea!
fuente
Python 3 ,
7668 bytesPruébalo en línea!
fuente
Perl 5 , 17 bytes
Pruébalo en línea!
fuente
05AB1E ,
139 bytesPruébalo en línea!
Explicación
fuente
Perl 6 ,
4523 bytesPruébalo en línea!
Solo una expresión regular de transliteración.
fuente
TR/1..90a..j/a..j1..90/
tio.run/##K0gtyjH7n1upoJamYKvwvzokSN9QT8/SIFFPL0sfRIB5@rX/…Retina 0.8.2 , 12 bytes
Pruébalo en línea! Explicación:
Realizar una transliteración.
La lista de origen son las letras
a-j
, luego0
, los dígitos9-1
.La lista de destino es la lista de origen invertida, es decir, los dígitos
1-9
, luego0
, luego las letrasj-a
.fuente
J , 38 bytes
Pruébalo en línea!
fuente
Python 2 ,
8278 bytesPruébalo en línea!
-4 con agradecimiento a @ovs
fuente
JavaScript (ES6), 66 bytes
Pruébalo en línea!
fuente
R , 40 bytes
Pruébalo en línea!
Sorprendentemente, R es decente en este tipo de desafío de cadena , porque tiene una
tr
función similar a la de la respuesta Bash . No tengo idea de por qué existe, ¡pero estoy agradecido por ello!fuente
MS-SQL, 71 bytes
La nueva función SQL 2017
TRANSLATE
realiza el reemplazo de caracteres individuales, por lo que es ideal para este propósito. Vea mi respuesta similar en un desafío anterior .La entrada es a través de una tabla t existente con la columna varchar v , según nuestras reglas de IO . Para reemplazar solo letras minúsculas, la tabla debe crearse usando una intercalación entre mayúsculas y minúsculas :
fuente
Jalea , 16 bytes
Pruébalo en línea!
fuente
Pyth , 13 bytes
Pruébalo aquí!
Explicación
fuente
Haskell ,
8066 bytesPruébalo en línea!
fuente
REXX, 57 bytes
fuente
C (gcc) ,
8172 bytesGracias a Giacomo Garabello por las sugerencias.
Pruébalo en línea!
fuente
putchar(...)
->*s=...
y otros 4 reemplazándolos*s-48U<11
con ¡*s<59
Pruébelo en línea!*s<59
rompe si los caracteres como$
están en la entrada, es por eso que lo hice*s-48U
([0..47] se convierte en [-48 ..- 1], que se convierte en un gran valor sin signo). Como la pregunta no especificó si no -alnums eran válidos, fui con la interpretación más conservadora.Powershell, 94 bytes
Script de prueba:
Explicación
$args
- cadenas de argumentos$args|% t*y
- se expande al|ForEach-Object -Method ToCharArray
equivalente de"$args".ToCharArray()
($s='1a2b3c4d5e6f7g8h9i0j').IndexOf($_)
- encuentra un carácter en la cadena, devuelve una posición o -1 si no se encuentra. Deje que $ s almacena la cadena que contiene un carácter emparejado en las posiciones vecinas que difieren en el último bit: 0 + 1, 2 + 3, 4 + 5 ...if(1+($p=...))
- si se encontró la posición$p-bxor1
- bit de posición xor 1fuente
-bxor1
.R , 107 bytes
Pruébalo en línea!
Primer intento, definitivamente mejorable ...
fuente
chartr
es tu amigo aquí, creo.Óxido , 96 bytes
Pruébalo en línea!
No es seguro para Unicode, si lo fuera, sería aún más largo.
fuente
K4 , 38 bytes
Solución:
Explicación:
Busque cada carácter en la lista
"abcdefghij1234567890"
y luego indexe en la lista"1234567890abcdefghijX"
dóndeX
está el carácter original.Necesito encontrar una forma más corta de construir las cadenas ...
Prima:
Otra solución para 38 bytes :
fuente
Yabasic , 135 bytes
Toma entrada de la consola y salidas a la consola.
Pruébalo en línea!
fuente
Japt ,
4442 bytesPruébalo en línea!
fuente
sed, 44 bytes
Un poco aburrido, lo admito.
Pruebas:
fuente