Su tarea es escribir un programa que genere la cadena exactaProgramming Puzzles
(nueva línea opcional), pero cuando se eliminan todos los espacios, pestañas y nuevas líneas, se genera Code Golf
(nueva línea opcional).
Su recuento de bytes es el recuento del primer programa, con espacios aún allí.
Notas
Los espacios en
Code Golf
yProgramming Puzzles
serán eliminados como parte de la eliminación, así que planifique en consecuencia.En las codificaciones donde 0x09, 0x0A y 0x20 no son pestañas, líneas nuevas o espacios respectivamente, esos caracteres se eliminarán.
Si tu código es
42 $@ rw$ @42
entonces eso debe salir
Programming Puzzles
. Además, en el mismo idioma,42$@rw$@42
debe salir
Code Golf
.
Este es el código de golf , por lo que gana el código más corto en bytes. ¡Buena suerte!
fuente
Code Golf
también se eliminará el espacio , ¿qué pasa con el que está adentroProgramming Puzzles
?Respuestas:
Python 2 , 50 bytes
Pruébalo en línea!
Con todos los espacios eliminados:
Prueba eso en línea!
Gracias a Stephen S por 3 bytes, y Erik the Outgolfer por 1
fuente
" ">""
devuelveTrue
, ya que, lexicográficamente, un espacio es mayor que la cadena vacía. En el segundo caso,"">""
retornaFalse
, ya que nada puede ser mayor que sí mismo.True
y enFalse
realidad son justos1
y0
respectivamente, solo en elbool
tipo de datos en lugar deint
olong
. En el primer caso, los espacios se conservan, por lo tanto, el elemento en el índice 1"Programming Puzzles"
, se devuelve textualmente. En el segundo caso, los espacios se han ido, por lo tanto,\x20
en el elemento en el índice 0"Code\x20Golf"
para preservar un espacio.Python 2 ,
4847 bytes-1 byte gracias a Erik the Outgolfer
Pruébalo en línea!
Pruébalo en línea!
fuente
05AB1E , 15 bytes
Pruébalo en línea!
Explicación
fuente
C,
64625352 bytesPruébalo en línea!
Utiliza el hecho de que las cadenas C terminan con un carácter nulo
fuente
CJam , 38 bytes
Pruébalo en línea! o con espacios eliminados
Explicación
Si los espacios están en el programa o no, determina si la primera cadena es verdadera o falsa.
fuente
:(
"Bncd\x19Fnke":)
es un código feliz en su lugar (reemplazar\x19
).Jalea , 18 bytes
Pruébalo en línea!
Explicación
En el programa tal como está escrito, la primera línea es una función auxiliar que nunca se ejecuta. La segunda línea (la última en el programa) es el programa principal y es la representación comprimida de la cadena
"Programming Puzzles"
(que luego se imprime implícitamente).Si elimina la nueva línea, todo se convierte en un gran programa.
“½ċṭ6Ỵ»
es la representación comprimida de la cadena"Code Golf"
.ḷ
evalúa pero ignora su argumento de la mano derecha, dejando el mismo valor que antes de ejecutarse; se puede usar para evaluar las funciones de sus efectos secundarios (algo que he hecho antes), pero también se puede usar, como aquí, para comentar efectivamente el código.Curiosamente, la lógica real aquí es más corta que la entrada 05AB1E, pero el código en su conjunto sale más tiempo porque el compresor de cadenas es menos bueno para comprimir estas cadenas particulares.
fuente
Jalea , 17 bytes
Pruébalo en línea!
Cómo funciona
Al igual que en la otra respuesta jalea,
Ñ1ɦ+£)G
y½ċṭ6Ỵ
codificar las cadenas de programación Puzzles y Código de golf .“
comienza un literal de cadena y separa una cadena de otra, mientras»
selecciona el tipo de literal (compresión basada en diccionario), por lo que esto produceṂ
luego toma el mínimo, produciendo Code Golf .Sin embargo, al agregar un espacio entre
½ċṭ6
yỴ
, obtenemos una segunda cadena completamente diferente, y el literal se evalúa comoDado que caird coinheringaahing es lexicográficamente más grande que Programming Puzzles ,
Ṃ
selecciona la primera cadena en su lugar.fuente
“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Javascript,
464342 Bytesfuente
\x20
en la primera cadena con un espacio.;
?;
a veces no se requieren en JavaScript.\x20
con\40
para guardar un byte :-)Wolfram idioma, 62 bytes
El espacio en
[[0 1]]
es multiplicación implícita, por lo que es equivalente a[[0]]
. Sin espacio,01
es justo1
. Las partes 0 y 1 de esta expresión son las cadenas que queremos.Otra solución de validez cuestionable (44 bytes, 2 guardados por Kelly Lowder):
El
\.20
se reemplaza por un espacio inmediatamente cuando se escribe en un entorno de Mathematica, por lo que no está claro si se elimina junto con los otros espacios ...fuente
\:0020
convierte en un espacio y, por lo tanto, se eliminaría, por lo que no estoy seguro de que esto califique. También\.20
es más corto. Por dos caracteres."Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]
trabajará.\.20
sugerencia, ¿cómo encontraste eso? Pensé que había revisado toda la documentación ...)\.20
haciendo un error tipográfico. Parece que solo funciona para códigos de caracteres de dos dígitos. No creo que esté en la documentación.Excel - 56 bytes
Muy similar a la mayoría de las otras respuestas ... nada lujoso aquí.
fuente
Haskell, 48 bytes
Define la función
f
que devuelve la cadena correspondiente.Como referencia, la versión anterior es:
Haskell, 49/47 bytes
con espacios eliminados
Dos coincidencias de patrones simples.
(_)
coincide con todos los patrones. Puede mejorar la versión sin espacios en un byte definiendo el segundo patrón comof" "=
/f""=
, pero esto genera una advertencia de "La coincidencia de patrones es redundante".Solución alternativa con el mismo número de bytes:
fuente
Ohm ,
3332 bytesUtiliza la codificación CP437.
Pruébalo en línea! o intente sin espacios en blanco
Explicación
Con espacios en blanco:
Sin espacios en blanco:
fuente
Code Golf
se alargó cuando se comprimió. Supongo que es por las capitales? De cualquier manera, todavía es más corto que escribirlo normalmente porque no puedo usar un espacio literal aquí.Japt , 29 bytes
Con espacios:
Pruébalo en línea!
Sin espacios:
Pruébalo en línea!
Esto aprovecha el hecho de que en Japt, un espacio cierra una llamada al método. Con espacios, el código es más o menos equivalente a este código JavaScript:
Esto se evalúa como JavaScript y el resultado se envía a STDOUT. Como la última expresión es
"Programming Puzzles"
, esa cadena se imprime.Sin espacios, el código es más o menos equivalente a:
(Si aún no lo ha descubierto, la
S
variable es un espacio único). El.r()
método en una cadena, si se le da un argumento, elimina todas las instancias de ese argumento de la cadena. Como"Code Golf"
no contiene"ProgrammingPuzzles"
, devuelve"Code Golf"
sin cambios, que luego se envía a STDOUT.fuente
Brachylog , 44 bytes
Pruébalo en línea!
Explicación
fuente
ambos lados para arreglar :)Alice , 44 bytes
Pruébalo en línea!
Sin espacios en blanco:
Pruébalo en línea!
Explicación
En el primer programa, los dos espejos
/
redirigen el puntero de instrucciones a la segunda línea."selzzuP gnimmargorP"
empuja los puntos de código requeridos en orden de reverencia,d
empuja la profundidad de la pila e&o
imprime esa cantidad de bytes.@
termina el programaSin el espacio en blanco, el programa está todo en una sola línea. En ese caso, el puntero de instrucciones no puede moverse en modo Ordinal, por lo que
/
efectivamente se convierten en no-ops (técnicamente, la IP simplemente no se mueve en un paso, lo mismo/
se ejecuta nuevamente, y la IP se refleja nuevamente en el modo Cardinal ) Entonces, si los eliminamos del programa, se verá así:Para incluir el espacio
Code Golf
, usamos un signo de exclamación y lo decrementamos cont
. Después de tener todos los puntos de código en la pila,#
omite el siguiente comando, que es la segunda cadena completa.d&o
luego imprime la pila nuevamente y@
finaliza el programa.fuente
PHP, 44 bytes
operador ternario
PHP, 51 bytes
comentario
PHP, 57 bytes
interruptor de matriz
fuente
Pyth, 37 bytes
Pruébalo aquí.
Pruébalo aquí.
fuente
C #
88817063 bytesCon espacios en blanco despojados:
Gracias a BrianJ por mostrarme cómo no hay espacio entre un tipo de retorno de método y el nombre del método, PeterTaylor por guardar
718 bytes y Patrick Huizinga por guardar 7 bytes.Mismo método que todos los demás en realidad,
técnicamente esto podría ser considerado válido porque el método no especifica un tipo de retorno para el método, pero no tiene que ser un espacio en blanco entre el tipo de retorno y el nombre del método.fuente
@
, por lo que entonces usted tienevoid@a...
y evitar el error de compilación "ningún tipo de retorno" (también añade bytes, aunque :().Length<1
guarda un byte;\u0020
ahorra seis si he contado correctamente; y puede hacer una respuesta válida (y guardar algunos bytes al mismo tiempo) enviando una lambda en lugar de una función de nivel superior.Func<string>a=()=>...
@
se usa principalmente si necesita usar una palabra reservada como nombre de variable (el equivalente está rodeado por[]
VB.NET (y MS SQL Server)).=>
lugar dereturn
no necesita espacios. (E incluso si lo usasreturn
, puedesreturn(...)
).Common Lisp (SBCL), 52 bytes
Huellas dactilares
Programming Puzzles
Huellas dactilares
Code Golf
Sin golf:
Explicación:
El truco proviene básicamente de cómo
#'format
funciona en Common Lisp.En CL, se puede omitir la mayoría de los espacios en blanco siempre que no haya ambigüedad sobre dónde comienzan o terminan los tokens. El primer truco fue separar los símbolos
format
yt
. Tuve que terminar sin ambigüedades elformat
símbolo sin cambiar cómot
se interpretó. Afortunadamente, `en CL finaliza el token anterior antes de que se procese y,
cancela el efecto de` (`se usa para implementar plantillas, donde la siguiente expresión que sigue se" cita ", pero,
se evalúa cualquier sub-expresión prefijada con a y el resultado incluido en la plantilla, por lo que `, es casi un no-op).El tercer argumento
format
es la cadena de plantilla.format
es similar a printf en C, pero tiene directivas de formato mucho más potentes y usa ~ para indicarlas en lugar de%. ~ [y ~] le permiten seleccionar entre múltiples opciones de impresión, con ~; separándolos. Se proporciona un argumento adicional para formatear: el índice numérico del que desea imprimir. Para asegurar que el "" en Code Golf sobreviva, utilicé la directiva de tabulación ~ T, que se utiliza para insertar espacios en blanco, generalmente para alinear el texto en columnas. ~ @ T es una variación que solo inserta un número dado de espacios, por defecto a 1.Finalmente, hay dos argumentos para formatear: 0 y 1. Antes de que se elimine el espacio en blanco, ~ [~; ~] utiliza el 0 para seleccionar "Rompecabezas de programación" y el argumento de formato adicional (el 1) se descarta (estoy no estoy seguro de qué tan estándar es la eliminación de argumentos de formato extra, pero esto funciona en Steel Bank Common Lisp). Después de eliminar el espacio en blanco, solo hay un argumento (01) que selecciona "Code Golf" en su lugar.
fuente
,
se evalúa y se empalma" ¿No es,@
necesario para empalmar?,
evalúa la siguiente expresión e incluye el resultado en la plantilla, mientras,@
supone que la expresión evaluará a una lista e incluye los contenidos de esa lista en la plantilla directamente. Tradicionalmente en la comunidad lisp,,@
se llama "empalme", pero no estoy seguro de que sea la opción más obvia. Intentaré reformularlo un poco.Java 8,
745048 bytesfuente
==
operador también debería funcionar,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
\u00A0
->\040
para un ahorro de 2 bytes.Japt , 32 bytes
Pruébalo en línea!
fuente
PowerShell , 56 bytes
Pruébalo en línea!
Bastante básico, diría, pero hace el trabajo
fuente
R, 50 bytes
Creo que esto es lo mismo que esta respuesta de Javascript , y básicamente la misma idea que todas las demás.
fuente
> <> , 42 bytes
Con espacios en blanco
Pruébalo en línea!
Sin espacios en blanco
Pruébalo en línea!
fuente
dc , 50
Pruébalo en línea .
[ ]
define una cadena -Z
mide su longitud. Si la longitud es 19, entonces contiene un espacio y se llama a la macro almacenada en el registro m, que imprimeProgramming Puzzles
y se cierra. DeCode Golf
lo contrario se imprime.fuente
> <> ,
4745 bytesPruébalo en línea!
Gracias a randomra por -2 (dos inteligentes
!
para poder usar solo uno>o<
).El código grita "¡Flog! ¡Flog! ¡Flog!" y se parece a un pez.
fuente
T-SQL,
96828167 bytesPruébalo en línea |Sin espacios
Versión anterior (96 bytes):
fuente
iif(len(' x')=2
print
. Usé un+
en su lugar y funcionó.Perl 5 ,
4341 bytesPruébalo en línea!
Utiliza el hecho de que
' '
es verdadero en Perl y''
es falso. La$"
variable se establece en un espacio de forma predeterminada.Gracias a @NahuelFouilleul por eliminar dos bytes.
fuente
"Code$\"Golf"
es más corta yCode.$".Golf
demasiadoGolfScript , 38 bytes
Pruébalo en línea!
fuente
Befunge , 76 bytes
Pruébalo en línea!
No es la solución más compacta, pero volver a escribir código Befunge sin espacios en blanco es bastante difícil.
Al principio, compara un carácter de espacio con 0. Si es mayor, va a la fila inferior. Si no es así, que es lo que sucede cuando reemplaza el espacio con nada, permanece en la primera fila.
fuente
,
s?>:#,_
que podría ahorrarle muchos bytes