Code Golf Measurer © 2019
Hexdumps utilizados con un xxd
aspecto similar a este:
00000000: 666f 6f20 6261 7220 7370 616d 2065 6767 foo bar spam egg
00000010: 730a s.
Su tarea es convertir un hexdump de esta forma en la cantidad de bytes utilizados.
Reglas:
- Lagunas habituales prohibidas.
- Este es el código de golf , por lo que la respuesta válida más corta en bytes gana.
- Puede incluir o no la nueva línea al final del texto (
0a
). Esto significa que si el hexdump termina en una nueva línea (0a
), esa entrada puede tener su salida reducida en uno. - Una entrada vacía (literalmente nada: lista / cadena / etc. vacía) debe generar 0.
- La entrada se puede tomar de cualquier forma
- La entrada será ASCII válida sin caracteres de control
- La entrada debe contener todo el hexdump
Casos de prueba:
00000000: 4865 6c6c 6f2c 2077 6f72 6c64 2120 4865 Hello, world! He
00000010: 6c6c 6f2c 2077 6f72 6c64 210a llo, world!.
devuelve 28 o 27
00000000: 0a .
devuelve 1 o 0
00000000: 6368 616c 6c65 6e67 650a challenge.
devuelve 10 o 9
00000000: 4865 6c6c 6f2c 2077 6f72 6c64 21 Hello, world!
devuelve 13
devuelve 0 (esto es literalmente nada: lista vacía / cadena / etc.)
Las explicaciones serían buenas para los idiomas no estándar.
code-golf
string
hexadecimal
gadzooks02
fuente
fuente
xxd
se alimenta con una cadena vacía, no genera nada.objdump
desmontaje o lasnasm
listas de respuestas de código de máquina). Creo que debería publicar eso en el sandbox ...Respuestas:
Retina 0.8.2 , 8 bytes
Pruébalo en línea! Explicación:
Eliminar los primeros 51 caracteres de cada línea. (Las líneas solo pueden tener entre 52 y 67 caracteres, por lo que esto siempre coincide una vez por línea).
Cuente los caracteres restantes que no sean de nueva línea
7 bytes si la entrada vacía no tenía que ser compatible:
Pruébalo en línea! Explicación:
Eliminar los primeros 52 caracteres de cada línea. (Las líneas solo pueden tener entre 52 y 67 caracteres, por lo que esto siempre coincide una vez por línea).
Cuente 1 más que el número de caracteres restantes (incluidas las nuevas líneas).
fuente
&`.{52}
.tcsh , 12 bytes
Pruébalo en línea!
fuente
V (vim) , 7 bytes
Pruébalo en línea!
Explicación:
Hexdump:
fuente
Retina , 7 bytes
Esto cuenta el número total de cadenas de una sola línea de longitud 52. Podría ser posible hacer algo similar
%52,`.
, pero no pude encontrar una manera de solucionarlo.Pruébalo en línea!
fuente
&`.{52}
para Retina 0.8.2.APL (Dyalog Extended) , 18 bytes
Programa completo Solicita una lista de cadenas (es decir, listas de caracteres).
Pruébalo en línea!
⎕
rápido49↑¨
tomar los primeros 49 caracteres de cada(
…)¨
Aplique la siguiente función tácita a cada uno:⊢
el argumento⊆
cortar en series de personajes que son≠
diferente del carácter de relleno (espacio)1↓
soltar la primera "palabra"∊
ϵ nlist (aplanar)≢
cuenta2÷⍨
dividir por dosfuente
Jalea , 5 bytes
Un enlace monádico que acepta una lista de líneas que producen el número entero de bytes.
Pruébalo en línea!
¿Cómo?
fuente
C (gcc) ,
6455 bytesPruébalo en línea!
¡9 bytes eliminados gracias a YSC!
Aquí hay una versión más frágil inspirada en la solución JavaScript de Arnauld que probablemente falla para entradas largas:
C (gcc) , 50 bytes
Pruébalo en línea!
fuente
return r
al=r
main
), debería ser posible llamarla varias veces.r;s[];f(l){while(*s=0,gets(s),l=strlen(s))r+=l-51;l=r;}
while()
tiene el mismo número de bytes quefor(;;)
. Por;while()
lo tanto, es un byte más largo quefor(;;)
.Python 3,
4846 bytesLa entrada se pasa como una cadena a la función. La función incrementa la longitud de la entrada (incluidas las nuevas líneas), luego resta 52 para cada línea.
Pruébalo en línea
fuente
f=
se puede mover al encabezado como `f =`, dejando solo el lambda como código y guardando dos bytes: ¡ Pruébelo en línea!f=
es un hábito que aprendí del servidor de discordias Python.Japt
-x
, 5 bytesEntrada como un conjunto de líneas.
Intentalo
fuente
Perl 6 , 18 bytes
Pruébalo en línea!
Anónimo Cualquier lambda que tome una lista de líneas y devuelva la suma de la cantidad de caracteres, restando 51 por cada línea
fuente
05AB1E ,
86 bytesPruébalo en línea!
Entrada como una lista de cadenas.
fuente
Lenguaje de fórmulas IBM / Lotus Notes, 53 bytes
No hay TIO para Formula, por lo que aquí hay capturas de pantalla de los casos de prueba:
La fórmula se encuentra en el campo calculado que proporciona el valor después de "Devoluciones".
Explicación
Esta es una buena demostración de la forma en que Formula aplicará recursivamente una función a una lista sin necesidad de un bucle. La fórmula está en un campo calculado en la misma forma que el campo de entrada editable 'i'.
@Left
y@Right
permitir que se use un delimitador de cadena o varios caracteres. Por lo tanto, buscamos a la derecha:
y luego a la izquierda de la primera aparición de dos espacios. Dado que Formula ve la nueva línea como un separador de lista, aplicará esto a cada línea en la entrada.@Explode
es el equivalente de Fórmula de unasplit
función y su valor predeterminado es espacio,,
o;
. Nuevamente se aplica a cada línea en el campo, pero esta vez los resultados se combinan en una sola lista.@Length
luego se aplicará a cada miembro de la lista. En cada caso dividimos su valor de retorno por 2.@Sum
toda la lista y generar el resultado.fuente
JavaScript (ES6), 34 bytes
Pruébalo en línea!
Comentado
fuente
Rojo ,
8155 bytesPruébalo en línea!
Toma la entrada como una lista de cadenas.
fuente
JavaScript,
3332 bytesPruébalo en línea!
Guardado 1 byte gracias a Arnauld.
fuente
Befunge-98 (FBBI) , 16 bytes
Pruébalo en línea!
fuente
Stax , 5 bytes
Ejecutar y depurarlo
fuente
Zsh , 36 bytes
Con las banderas predeterminadas de zsh:
Pruébalo en línea!
${(f)1}
se divide$1
en líneas nuevas y descarta líneas vacías. Los$[ arithmetic expansion ]
guardias contra el caso vacío, cuando el bucle nunca se establece$c
.Zsh , 28 bytes
Con
-o extendedglob
:Pruébalo en línea!
(f)
Divida en líneas nuevas,${ #?(#c52)}
elimine los 52 caracteres(F)
iniciales , únase en líneas nuevas para que el recuento sea en forma de caracteres en lugar de en listas,${# }
cuente los caracteres.fuente
asm2bf , 135 bytes
Versión de golf:
Versión comentada:
fuente