Hay varias formas de crear encabezados en publicaciones en la red de Stack Exchange. El formato que es más comúnmente 1 utilizado en PPCG parece ser:
# Level one header
## Level two header
### Level three header
Tenga en cuenta el espacio después de las marcas hash. Además, tenga en cuenta que las marcas hash finales no están incluidas.
Desafío:
Tome una cadena (posiblemente multilínea) como entrada y envíe la cadena en el siguiente formato:
- Si el encabezado es el nivel 1, entonces envíe cada letra 4 por 4 veces
- Si el encabezado es de nivel 2, entonces envíe cada letra 3 por 3 veces
- Si el encabezado es de nivel 3, entonces envíe cada letra 2 por 2 veces
- Si una línea no es un encabezado, envíela como está.
Para ilustrar:
--- Level 1 ---
# Hello
--- Output---
HHHHeeeelllllllloooo
HHHHeeeelllllllloooo
HHHHeeeelllllllloooo
HHHHeeeelllllllloooo
--- Level 2 ---
## A B C def
--- Output ---
AAA BBB CCC dddeeefff
AAA BBB CCC dddeeefff
AAA BBB CCC dddeeefff
--- Level 3 ---
### PPCG!
--- Output---
PPPPCCGG!!
PPPPCCGG!!
¡Simple como eso!
Reglas:
- Debe admitir la entrada en varias líneas. Usar
\n
etc. para líneas nuevas está bien.- No habrá líneas que contengan solo un
#
seguido de un solo espacio
- No habrá líneas que contengan solo un
- La salida debe presentarse en varias líneas. No puede generar resultados en
\n
lugar de nuevas líneas literales.- Los espacios finales y las nuevas líneas están bien.
Casos de prueba:
La entrada y la salida están separadas por una línea de ...
.
# This is a text
with two different
### headers!
........................................................
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
TTTThhhhiiiissss iiiissss aaaa tttteeeexxxxtttt
with two different
hheeaaddeerrss!!
hheeaaddeerrss!!
This input has
## trailing hash marks ##
#and a hash mark without a space after it.
........................................................
This input has
tttrrraaaiiillliiinnnggg hhhaaassshhh mmmaaarrrkkksss ######
tttrrraaaiiillliiinnnggg hhhaaassshhh mmmaaarrrkkksss ######
tttrrraaaiiillliiinnnggg hhhaaassshhh mmmaaarrrkkksss ######
#and hash marks without a space after it.
# This ## is ### strange
#### ###
........................................................
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
TTTThhhhiiiissss ######## iiiissss ############ ssssttttrrrraaaannnnggggeeee
#### ###
Multiple
### newlines! #
:)
........................................................
Multiple
nneewwlliinneess!! ##
nneewwlliinneess!! ##
:)
Line with only a hash mark:
#
### ^ Like that!
........................................................
Line with only a hash mark:
#
^^ LLiikkee tthhaatt!!
^^ LLiikkee tthhaatt!!
1: Realmente no lo he comprobado, pero creo que es cierto.
Respuestas:
Apilado ,
5150 bytesGuardado 1 byte gracias a @RickHitchcock - golfge regex
Pruébalo en línea!
Función anónima que toma información de la pila y la deja en la pila.
Explicación
fuente
JavaScript (ES6),
111105bytesGuardado 6 bytes gracias a @Shaggy
Coincide con 1-3 hashes al comienzo de la cadena o precedidos por una nueva línea, luego repite cada carácter en la coincidencia junto con la coincidencia misma, según la longitud de los hashes.
Casos de prueba:
Mostrar fragmento de código
fuente
Retina ,
125104 bytesPruébalo en línea
Guardado 21 bytes gracias a Neil.
fuente
%)
en la tercera etapa que le permite eliminar los%
s en las dos primeras etapas. Además, normalmente se colocaG
después de la(
s (de la cual ahora necesitará dos) en el encabezado.m)
om(
que ahora ahorra 9 bytes porque luego puede eliminar todos los otrosm
s.MATL ,
434240 bytes¡1 byte eliminado gracias a Rick Hitchcock !
Esto genera un espacio final en cada línea (permitido por el desafío) y sale con un error (permitido por defecto) después de producir la salida.
Pruébalo en línea!
Explicación
fuente
repelem
(Y"
en MATL).kron
sigue siendo probablemente el camino más corto en MATLABPerl 5, 47 +1 (-p) bytes
pruébalo en línea
fuente
Carbón , 46 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. El carbón de leña realmente no hace la entrada del conjunto de cadenas, por lo que tuve que agregar la longitud del conjunto como entrada. Explicación:
Pase el número apropiado de cadenas de entrada.
Cree una matriz de cadenas tomando la entrada y el prefijo hasta 2 #s, luego truncando a la longitud 4, luego intente encontrar
###
en la matriz, luego convierta a indexación 1. Esto da como resultado un número que es uno menos que el zoom de la letra.Si el zoom de la letra es 1, haga un bucle sobre toda la cadena; de lo contrario, repita sobre el sufijo apropiado (que es irrazonablemente difícil de extraer en carbón).
Dibuje un polígono con la letra que termina en la esquina superior derecha y luego muévase a la derecha listo para la siguiente letra.
Imprima el resultado y reinicie listo para la siguiente cadena de entrada.
fuente
SOGL V0.12 ,
3128 bytesPruébalo aquí! - código adicional agregado porque el código es una función y toma entrada en la pila (SOGL no puede tomar entrada de varias líneas de otra manera: /) -
inputs.value”
- empuja esa cadena,→
- evalúa como JS,F
- llama a esa funciónExplicación:
fuente
Protón , 130 bytes
Pruébalo en línea!
fuente
\n
, pero la salida debe mostrarse con nuevas líneas literales.5-
allí. Lo sentimosPython 3 , 147 bytes
Pruébalo en línea!
-1 byte gracias al Sr. Xcoder
fuente
5-
allí. Lo sentimosC # (.NET Core) , 268 + 18 bytes
Pruébalo en línea!
fuente
Python 3 , 131 bytes
Pruébalo en línea!
Usé Python 3 para usar
[]
con expresiones regulares.fuente
PHP, 122 + 1 bytes
Ejecute como tubería con
-nR
(funcionará en una línea de entrada después de otra) o pruébelo en línea .fuente
J , 55 bytes
No sé cómo hacer que TIO funcione con J regex, por lo que no puedo proporcionar un enlace de trabajo.
Aquí se explica cómo probarlo en el intérprete J (probado con J804)
Simulo una cadena multilínea a través de una lista de cadenas en caja.
fuente
Python 2 ,
126124117 bytesPruébalo en línea!
o
Pruébalo en línea!
fuente
JavaScript, 112 bytes
Mostrar fragmento de código
fuente
#### ##
.C # 4.5 158 Bytes
Donde i es la entrada en forma de una cadena.
fuente