Isso faz parte de um desafio de policiais e ladrões. Vá aqui para a parte da polícia.
Para o objetivo deste desafio, definiremos espaço em branco como apenas feeds de linha (0x0A) e espaços (0x20). Observe que a maioria dos idiomas e tipos de expressões regulares também consideram muitos outros caracteres como espaço em branco, dentro e fora do intervalo ASCII, portanto, talvez você não consiga usar os built-ins correspondentes.
O desafio dos ladrões
A resposta de um policial pode ser quebrada, transformando-a em um programa ou função válida (no idioma escolhido), que executa a tarefa de remover o espaço em branco de uma sequência de entrada, inserindo o espaço em branco no código. Por exemplo, se você recebeu a seguinte entrada:
H e l l o,
W o r l d!
O programa deve gerar
Hello,World!
Após inserir o espaço em branco, a contagem de bytes da solução não deve exceder a contagem de bytes indicada na resposta da policial. Você não precisa encontrar exatamente a mesma solução que o policial pretendia, desde que a sua seja válida pelas restrições acima.
Se você conseguir isso, poste uma resposta com a solução, vinculando-a à resposta do policial e deixe um comentário sobre a resposta do policial voltando para a sua.
O ladrão que consegue mais respostas policiais ganha. Os laços são quebrados pela soma dos tamanhos das respostas dos policiais rachados (a favor do ladrão que racha envios mais longos).
Cada resposta policial pode ser quebrada apenas uma vez e, é claro, você não tem permissão para quebrar sua própria resposta. Se a resposta do policial for inválida antes ou depois de ser quebrada, ela não será contabilizada na pontuação do ladrão.
fonte
JavaScript ES6, 199 bytes de Arnauld
Percebi que a divisão
"SecretCode"
significava que eu estava procurando 11 números que somaram (assumi) 33. Esse é um problema de estrelas e barras, onde o número de espaços são as estrelas e as letras"SecretCode"
eram as barras. Eu fiz as contas para ver quantas combinações havia para tentar (1.917.334.783 combinações) e decidi usar apenas força bruta, levou o dia todo.Provavelmente existe uma maneira mais inteligente de fazer isso, por exemplo, percebendo que
k
deve ser33
e66
para os índices 10 e 21, respectivamente, mas sou preguiçoso.fonte
$/**/=/[ \n]/;s['sp'+'lit']($)
... Oh, isso é sujo.C, 475 bytes por rexroni
Eu poderia começar a usar alguns desses define :)
Após o pré-processador, o código se parece com isso:
fonte
#defineabo
me jogou fora por um tempo. No começo, eu pensei que tinha que ser o#define ab o
que apenas adicionaria alguns;
s extras , mas isso não funcionou perto do fim.Ruby, 86 bytes + 1 sinalizador = 87 por histocrat
Isso foi realmente divertido, cada caractere na sequência passada
eval
é substituído pelo código de caractere (ord
) XORed^(...)
contra o número de espaços restantes na sequência. O código resultante é:fonte
RprogN, de Ataco
Isso parece fazer o truque
fonte
V, 37 bytes, por DJMcMayhem
Não imprimíveis:
TryItOnline
O que
ü
realmente me impressionou, fiquei esperando tanto eî
ser comandos.Í üî
in V traduz para:%s/ \|\n//g
in vim, que remove globalmente todo o espaço em branco. OÍ
comando está no wiki e oü
eî
are|
en
respectivamente com seu conjunto de bits altofonte
C, 140 bytes por betseg
(Também espero estar fazendo isso direito.)
fonte
MATL, 22 bytes por Luis Mendo
Embora eu não tenha certeza do porquê, isso parece funcionar
Vou ter que ver se consigo descobrir o que está fazendo. Imaginei que os comentários deviam ter feeds de linha depois deles e, em seguida, era apenas uma questão de colocar os espaços nos pontos corretos.
fonte
MATL,
2221 bytes de Luis Mendo.Finalmente ... MickyT decifrou enquanto eu escrevia uma explicação, então a resposta dele é a "válida". Eu postei isso de qualquer maneira, de acordo com este meta post .
M
eY
são desnecessários e são comentados. Basta adicionar 4 caracteres de espaço em branco, não 5.Isso é equivalente ao mais compacto :
Explicação parcial:
fonte
1e5
impresso100000
, ou1e
era um telefonemareshape
, mas então o que era5
? (Vejo agora que o item%
está no final da linha, não seria5M
um cinco e umM
. Além disso, eu pensei que tinha que terY(
uma linha. No final das contas, um ótimo tutorial sobre MATL :)Befunge-98, 65 bytes por ninjalj
Experimente online!
Isso foi muito divertido. Deduzi que, uma vez que existem poucos comandos de mudança de direção e nenhum
^<[]?x
ou similar, ele precisa usar quebra automática. Eu então escrevi um script Python para ajudar a obter o espaçamento correto para osj
.O código funciona pegando input (
~
) e duplicando-o duas vezes (::
). Subtrai 10 (':'0
ouord(':') - ord('0')
) e 32 ('[';
ouord('[') - ord(';')
). Em seguida, o segundo resultado é logicamente negado (1 se houver espaço, 0 caso contrário) e um 8 é pressionado.Agora vem a parte que precisava descobrir o que pular. O
1+!
é ignorado continuando para a próxima linha.#
pula o@
. O resultado logicamente negado (0 ou 1) é multiplicado pelo 8 e 1 é adicionado.O código então salta muitos (ou seja, 1 ou 9) espaços mais um extra à medida que o IP se move. Se o personagem não era um espaço, acaba no
!
. O código de caractere menos 10 é negado logicamente (1 se for nova linha, 0 caso contrário).j
depois, não pula nada, e print (,
) é chamado e o loop é retomado envolto verticalmente.Se o caractere for um espaço, a linha inferior será repetida novamente
32, 22
como parte inferior da pilha. O primeiroj
salta 705 espaços. Então a linha volta pela terceira vez. Se houver mais de dois 10 na pilha (o código apenas os deixa), o primeiroj
salta 100 espaços e o loop se repete. Caso contrário, o primeiroj
pula para!
, um zero é negado, o segundoj
pula sobre a impressão e o programa continua.Eu consegui jogar até 59 bytes.
fonte
C # 6, 201 bytes, por leite
demo repl.it
trueJoin
não está definido, então sóstring.Concat()
resta.p
é"\n"
.p[0]^32^10
é espaço. Teria sido (um pouco) mais difícil se ép[0]^42
ou outras constantes semelhantes.fonte
reticular, 43 bytes, de Conor O'Brien
Experimente online!
Isso foi mais difícil para mim do que deveria, porque eu era burra demais para encontrar a documentação e acabei tendo que adivinhar como alguns dos comandos funcionavam. Portanto, algumas dessas explicações podem não ser totalmente precisas, mas esse foi meu entendimento básico do código.
fonte
C #, 159 bytes por LethalCoder
repl.it
A sequência no final da linha 1 é
" \n"
(espaço + nova linha).fonte
Minkolang v0.15, 88 bytes por Kritixi Lithos
Explicação
fonte
C
omissos fossem confusos, mas um bom trabalho!