Existem várias maneiras de criar cabeçalhos em postagens na rede Stack Exchange. O formato que é mais comumente 1 usado em PPCG parece ser:
# Level one header
## Level two header
### Level three header
Observe o espaço após as marcas de hash. Além disso, observe que marcas de hash à direita não estão incluídas.
Desafio:
Pegue uma string (possivelmente multilinha) como entrada e produza a string no seguinte formato:
- Se o cabeçalho estiver no nível 1, emita cada letra 4 a 4 vezes
- Se o cabeçalho estiver no nível 2, emita cada letra 3 a 3 vezes
- Se o cabeçalho estiver no nível 3, emita cada letra 2 a 2 vezes
- Se uma linha não é um cabeçalho, emita-a como está.
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!!
Simples assim!
Regras:
- Você deve suportar a entrada em várias linhas. Usar
\n
etc. para novas linhas está OK.- Não haverá linhas contendo apenas um
#
seguido por um único espaço
- Não haverá linhas contendo apenas um
- A saída deve ser apresentada em várias linhas. Você não pode produzir em
\n
vez de novas linhas literais.- Espaços à direita e novas linhas estão OK.
Casos de teste:
Entrada e saída são separadas por uma linha 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: Eu realmente não verifiquei, mas acho que é verdade.
Respostas:
Empilhados ,
5150 bytesGuardado 1 byte graças a @RickHitchcock - golfed regex
Experimente online!
Função anônima que pega a entrada da pilha e a deixa na pilha.
Explicação
fonte
JavaScript (ES6),
111105 bytesGuardado 6 bytes graças a @Shaggy
Corresponde a 1 a 3 hashes no início da string ou precedido por uma nova linha; depois, repete cada caractere na partida junto com a partida, com base no comprimento dos hashes.
Casos de teste:
Mostrar snippet de código
fonte
Retina ,
125104 bytesExperimente online
Economizou 21 bytes graças a Neil.
fonte
%)
o terceiro estágio, que permite remover os%
s nos dois primeiros estágios. Além disso, normalmente se coloca oG
depois dos(
s (dos quais agora você precisará de dois) no cabeçalho.m)
oum(
que agora salva 9 bytes porque é possível remover todos os outrosm
s.MATL ,
434240 bytes1 byte removido graças a Rick Hitchcock !
Isso gera um espaço à direita em cada linha (permitido pelo desafio) e sai com um erro (permitido por padrão) após a produção da saída.
Experimente online!
Explicação
fonte
repelem
(Y"
em MATL).kron
ainda é provavelmente o caminho mais curto no MATLABPerl 5, 47 +1 (-p) bytes
experimente online
fonte
Carvão , 46 bytes
Experimente online! Link é a versão detalhada do código. O carvão vegetal não faz realmente a entrada da matriz de strings, então tive que adicionar o comprimento da matriz como uma entrada. Explicação:
Faça um loop sobre o número apropriado de cadeias de entrada.
Crie uma matriz de seqüências de caracteres usando a entrada e prefixando até 2 s, depois truncando para o comprimento 4, tente encontrar
###
na matriz e depois converta em indexação 1. Isso resulta em um número um a menos que o zoom da letra.Se o zoom da letra for 1, faça um loop sobre toda a cadeia, caso contrário, faça o loop sobre o sufixo apropriado (que é irracionalmente difícil de extrair no carvão vegetal).
Desenhe um polígono preenchido com a letra que termina no canto superior direito e mova-se para a direita, pronto para a próxima letra.
Imprima a saída e redefina pronta para a próxima sequência de entrada.
fonte
SOGL V0.12 ,
3128 bytesExperimente aqui! - código extra adicionado porque o código é uma função e recebe entrada na pilha (SOGL não pode receber entrada com várias linhas caso contrário: /) -
inputs.value”
- pressiona essa string,→
- avalia como JS,F
- chama essa funçãoExplicação:
fonte
Próton , 130 bytes
Experimente online!
fonte
\n
, mas a saída deve ser mostrada com novas linhas literais.5-
lá. DesculpePython 3 , 147 bytes
Experimente online!
-1 byte graças ao Sr. Xcoder
fonte
5-
lá. DesculpeC # (.NET Core) , 268 + 18 bytes
Experimente online!
fonte
Python 3 , 131 bytes
Experimente online!
Eu usei o Python 3 para usar
[]
com o regex.fonte
PHP, 122 + 1 bytes
Execute como pipe com
-nR
(funcionará em uma linha de entrada após a outra) ou tente online .fonte
J , 55 bytes
Não sei como fazer o TIO funcionar com o J regex, por isso não posso fornecer um link de trabalho.
Veja como testá-lo no intérprete J (testado com J804)
Simulo uma sequência multilinha através de uma lista de sequências em caixa.
fonte
Python 2 ,
126124117 bytesExperimente online!
ou
Experimente online!
fonte
JavaScript, 112 bytes
Mostrar snippet de código
fonte
#### ##
.C # 4.5 158 bytes
Onde i é a entrada na forma de uma string.
fonte