Esto es parte de un desafío de policías y ladrones. Ve aquí por la parte de la policía.
Para el propósito de este desafío, definiremos los espacios en blanco como solo saltos de línea (0x0A) y espacios (0x20). Tenga en cuenta que la mayoría de los idiomas y los sabores de expresiones regulares también consideran muchos otros caracteres como espacios en blanco, tanto dentro como fuera del rango ASCII, por lo que es posible que no pueda utilizar los elementos integrados correspondientes.
El desafío de los ladrones
La respuesta de un policía se puede descifrar transformándola en un programa o función válida (en el idioma elegido), que realiza la tarea de eliminar espacios en blanco de una cadena de entrada, insertando espacios en blanco en el código. Por ejemplo, si recibió la siguiente entrada:
H e l l o,
W o r l d!
El programa debería generar
Hello,World!
Después de insertar espacios en blanco, el recuento de bytes de la solución no debe exceder el recuento de bytes indicado en la respuesta del policía. No tiene que encontrar la misma solución exacta que el policía, siempre y cuando la suya sea válida según las restricciones anteriores.
Si logra esto, publique una respuesta con la solución, vinculando la respuesta del policía, y deje un comentario sobre la respuesta del policía vinculando la suya.
El ladrón que descifra la mayor cantidad de respuestas policiales gana. Los lazos se rompen por la suma de los tamaños de las respuestas de los policías descifrados (a favor del ladrón que descifra los envíos más largos)
Cada respuesta de policía solo se puede descifrar una vez y, por supuesto, no puedes descifrar tu propia respuesta. Si la respuesta del policía resulta ser inválida antes o después de ser descifrada, no se cuenta para el puntaje del ladrón.
fuente
JavaScript ES6, 199 bytes por Arnauld
Me di cuenta de que la división
"SecretCode"
significaba que estaba buscando 11 números que sumaban (supuse) 33. Este es un problema de barras y estrellas donde el número de espacios son las estrellas y las letras en"SecretCode"
las barras. Hice los cálculos para ver cuántas combinaciones había que probar (1.917.334.783 combinaciones) y decidí simplemente aplicar la fuerza bruta, me llevó todo el día.Probablemente haya una forma más inteligente de hacerlo, por ejemplo, notar que
k
tiene que ser así33
y66
para los índices 10 y 21 respectivamente, pero soy vago.fuente
$/**/=/[ \n]/;s['sp'+'lit']($)
... oh, eso está sucio.C, 475 bytes por rexroni
Podría comenzar a usar algunas de estas definiciones :)
Después del preprocesador, el código se ve así:
fuente
#defineabo
me echó por un tiempo. Al principio pensé que tenía que ser#define ab o
lo que agregaría algunos;
s adicionales , pero eso no funcionó cerca del final.Ruby, 86 bytes + 1 bandera = 87 por histocrat
Esto fue realmente divertido, cada carácter en la cadena que se pasa
eval
se reemplaza con el código de carácter (ord
) XOR^(...)
contra el número de espacios restantes en la cadena. El código resultante es:fuente
RprogN, por Ataco
Esto parece hacer el truco
fuente
V, 37 bytes, por DJMcMayhem
No imprimibles
TryItOnline
La
ü
verdad me tiró para un bucle, me quedé esperando que tanto ella comoî
para ser comandos.Í üî
in V se traduce en:%s/ \|\n//g
in vim, que elimina globalmente todos los espacios en blanco. ElÍ
comando está en la wiki, y losü
yî
are|
yn
respectivamente con su conjunto de bits altofuente
C, 140 bytes por betseg
(También espero estar haciendo esto bien).
fuente
MATL, 22 bytes por Luis Mendo
Aunque no puedo estar seguro de por qué, esto parece funcionar
Tendré que ver si puedo resolver lo que está haciendo. Pensé que los comentarios tenían que tener saltos de línea después de ellos y luego era solo una cuestión de colocar los espacios en los lugares correctos.
fuente
MATL,
2221 bytes por Luis Mendo.Finalmente ... MickyT lo descifró mientras escribía una explicación, por lo que su respuesta es la "válida". Publiqué esto de todos modos, de acuerdo con esta meta publicación .
M
yY
son innecesarios y están comentados. Es suficiente agregar 4 caracteres de espacio en blanco, no 5.Esto es equivalente al más compacto :
Explicación parcial:
fuente
1e5
impreso100000
, o1e
era una llamadareshape
, pero ¿qué era5
? (Ahora veo que%
está al final de la línea, por lo que sería5M
, no un cinco y unM
. Además, pensé que tenía que tenerY(
en una línea. En general, un tutorial MATL muy agradable :)Befunge-98, 65 bytes por ninjalj
Pruébalo en línea!
Esto fue muy divertido. Deducí que dado que hay pocos comandos de cambio de dirección y ninguno
^<[]?x
o similar, tiene que usar envoltura. Luego escribí un script de Python para ayudar a obtener el espacio correcto para elj
's.El código funciona tomando input (
~
) y duplicándolo dos veces (::
). Luego resta 10 (':'0
oord(':') - ord('0')
) y 32 ('[';
oord('[') - ord(';')
). Luego, el segundo resultado se niega lógicamente (1 si era espacio, 0 de lo contrario) y se empuja un 8.Ahora viene la parte que necesitaba descubrir qué omitir. Se
1+!
omite al continuar a la siguiente línea.#
se salta el@
. El resultado negado lógicamente (0 o 1) se multiplica por el 8 y se agrega 1.El código luego salta esa cantidad (es decir, 1 o 9) espacios más uno adicional a medida que se mueve la IP. Si el personaje no era un espacio, termina en el
!
. El código de caracteres menos 10 se niega lógicamente (1 si era nueva línea, 0 en caso contrario).j
luego no omite nada,,
se llama a print ( ) y se reanuda el bucle envolviendo verticalmente.Si el personaje era un espacio, la línea inferior se repite nuevamente
32, 22
como la parte inferior de la pila. Los primerosj
saltos 705 espacios. Luego la línea se repite por tercera vez. Si quedan más de dos 10 en la pila (el código solo los deja), el primeroj
salta 100 espacios y el ciclo se repite. De lo contrario, el primerj
salto al!
, se niega un cero, el segundoj
salta sobre la impresión y el programa continúa.Me las arreglé para jugar golf hasta 59 bytes.
fuente
C # 6, 201 bytes, por leche
demo de repl.it
trueJoin
no está definido, por lo que solostring.Concat()
queda.p
es"\n"
.p[0]^32^10
es el espacio Hubiera sido (un poco) más difícil si esp[0]^42
u otras constantes similares.fuente
reticular, 43 bytes, por Conor O'Brien
Pruébalo en línea!
Esto fue más difícil para mí de lo que debería haber sido porque fui demasiado estúpido para encontrar la documentación y terminé adivinando cómo funcionaban algunos de los comandos. Por lo tanto, parte de esta explicación puede no ser del todo precisa, pero esta fue mi comprensión básica del código.
fuente
C #, 159 bytes por LethalCoder
repl.it
La cadena al final de la línea 1 es
" \n"
(espacio + nueva línea).fuente
Minkolang v0.15, 88 bytes por Kritixi Lithos
Explicación
fuente
C
errores fueran confusos, ¡pero buen trabajo, sin embargo!