Escriba un programa que tome como entrada una cadena que consiste en caracteres imprimibles (ASCII 20-7E) y un número entero n
en [2,16] y realiza la siguiente modificación a la cadena.
- Cada carácter en la cadena se convierte a su código ASCII (los ejemplos dados están en hexadecimal, aunque la base 10 también es aceptable).
- Los códigos ASCII se convierten en base
n
y se concatenan juntos. - La nueva cadena se divide en todos los demás caracteres. Si hay un número impar de caracteres, el último carácter se elimina por completo.
- Los códigos ASCII de impresión (en la base 16) se convierten nuevamente en sus caracteres, mientras que los códigos ASCII que no se imprimen se eliminan.
- La cadena resultante se imprime.
Caso de prueba
Entrada
Hello, World!
6
Pasos
Hello, World!
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
2002453003003031125222330331030024453
20 02 45 30 03 00 30 31 12 52 22 33 03 31 03 00 24 45
La salida de este programa es E001R"31$E
.
Este es el código de golf, por lo que se aplican reglas estándar. El código más corto en bytes gana.
7
, la cadenaJ
pasaría por los pasosJ
->50
->101
->10
->(no output)
, como lo haría la cadenaK
oL
.H
es ASCII 72 (decimal) o 48 (hexadecimal), pero lo que necesito es 200 (base 6). Toda la fila 2 en el ejemplo es inútil y confusa en mi opiniónRespuestas:
Pyth - 22 bytes
Espero jugar mucho más al golf, bastante sencillo.
Pruébelo en línea aquí .
fuente
q3l`T
es maravilloso.fgTd
ser suficiente?CJam, 33 bytes
Toma entrada en el formulario
6 "Hello, World!"
. Pruébalo aquí.Vea la respuesta de Dennis para una solución similar pero mejor con una buena explicación.
fuente
Bash + utilidades comunes de Linux, 118
fuente
printf %s "$1"
aecho -n "$1"
salvar 2 bytes-e
. Pruebaecho -n "-e"
CJam, 24 bytes
Tenga en cuenta que hay un carácter DEL (0x7F) entre
'
y,
. Pruébelo en línea en el intérprete de CJam .Cómo funciona
fuente
DEL
carácter de la salida.JavaScript (ES6),
137147Usando las funciones más detalladas disponibles en JavaScript
fuente
x=>x>=
[for(z of ...)if(...)...]
lugar demap(...).filter(...)
x=>x>=
ha idoJulia, 118 bytes
Sin golf:
fuente
Mathematica, 134 bytes
Si se permite una función:
Mathematica, 112 bytes
fuente
TeaScript, 23 bytes
TeaScript es JavaScript para jugar al golf
Relativamente sencillo pero deliciosamente corto. Probablemente pueda jugar golf a algunos personajes más con algunos operadores más. Algunas otras características nuevas también podrían usarse para reducir algunos bytes.
Ungolfed && Explicación
fuente
Rubí 92
Prueba en línea aquí .
fuente
Python 2, 174 bytes
Pruébalo aquí
Realmente no es la mejor herramienta para el trabajo. Como Python no tiene una función de conversión a base arbitraria, tuve que implementar la mía. Eso fue divertido, al menos, particularmente encontrar una expresión [marginalmente] más corta para los dígitos que
"0123456789ABCDEF"[n%b]
. Para iterar sobre dos caracteres a la vez, descubrí que unwhile
bucle era ligeramente más corto que un enfoque funcional.181 bytes como programa completo:
fuente
MATLAB, 103 bytes
He escrito una función k que toma una cadena sy un número entero n como entrada. p.ej:
da
La cosa más molesta con la que tuve que trabajar son los ceros iniciales que se muestran al convertir a base n . Sacarlos de la matriz que se dividiría después de cada 2º carácter costaba muchos bytes. No estoy seguro de si es posible guardar más bytes con este enfoque.
fuente
PHP - 286 bytes
Ponga la cadena
$s
y el número entero$b
.Pase el valor a
GET["s"]
.fuente