Nesse desafio simples, mas divertido , você foi solicitado a determinar se Jimmy cairia da plataforma deles. Jimmy tem três partes do corpo /
, o
e \
dispostas como este
/o\
As plataformas são representadas por -
. Jimmy cairá da plataforma se tiverem duas ou mais partes do corpo que não estão diretamente acima da plataforma.
Alguns exemplos:
/o\
- -------
Jimmy se equilibrará, já que todas as partes do corpo estão acima de -
.
/o\
------ ---
Jimmy vai equilibrar uma vez que duas partes do corpo estão acima de -
s.
/o\
-- ---- --
Jimmy se equilibrará mesmo estando divididos entre duas plataformas
/o\
-
Jimmy não estará equilibrado, pois duas partes do corpo não estão acima de uma plataforma.
Sua tarefa é escrever um programa que utilize uma plataforma como um contêiner de comprimento contendo apenas -
s e s (por exemplo, uma string) e produza o número de Jimmys que podem ser colocados na plataforma, para que nenhum deles caia e nenhum deles caia. sobreposição. Um Jimmy pode ter uma de suas partes do corpo à esquerda do início da corda ou à direita do fim da corda.
Isso é código-golfe, então as respostas são pontuadas em bytes, com menos bytes sendo o objetivo.
Casos de teste
Entradas
- - -
- -
--
-- --
----
- -- --
------- -
Resultados respectivos
0
0
1
1
2
2
2
3
---
não estava bem comigo também, até que eu estava trabalhando no meu porto e percebi que eles não eram necessários. Acho que vou encerrar o dia aqui, pegar um saco de latas e jogar no SMG - não jogo há um tempo.Python 2 , 53 bytes
Experimente online!
Baseado no regex de Arnauld . Avidamente procura por todas as substrings de comprimento 3 não sobrepostas com duas ou mais
-
. Um truque é fazer`s`
para colocar a sequência de entrada entre aspas como preenchimento para deixar espaço para Jimmys ficar em uma das extremidades comoPython 2 , 57 bytes
Experimente online!
Requer um formato de E / S brega da entrada já entre aspas. Saídas
False
para 0.Uma função recursiva que coloca cada Jimmy na posição mais à esquerda permitida, colocando Jimmy sobre os três primeiros caracteres, se eles puderem segurar Jimmy, ou excluindo o primeiro caractere. Um truque bonito é verificar se
s[:3]
contém duas ou mais-
ações'--'in s[:3]*2
, o que concatena duas cópiass[:3]
e verifica duas adjacentes-
.fonte
Perl 5
-p
, 28 bytesUsa o mesmo método que o JavaScript de @ Arnauld.
Experimente online!
fonte
Japonês , 16 bytes
Baseado na solução JS original da Arnauld. Tentei alguns métodos diferentes para obter o preenchimento necessário em ambos os lados da entrada, mas todos vieram com o mesmo comprimento - ainda procurando um caminho mais curto ...
Teste-o
fonte
Excel, 96 bytes
A1
= plataforma. Introduzido como matriz FormulaCtrl
+Shift
+Enter
fonte
05AB1E , 16 bytes
Definitivamente, pode ser jogado golfe. Às vezes, é irritante ver todas essas respostas de regex em um desafio ao usar 05AB1E, que não possui nenhum tipo de regex. ;)
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
Ruby , 39 bytes
Experimente online!
fonte
Stax , 13 bytes
Execute e depure
fonte
Java 8, 41 bytes
Experimente online.
Porta da resposta JavaScript do @Arnauld , exceto que
+0
é+10
para corrigir casos de teste como----
. Isso é necessário porque oString#split
Java interno removerá as Strings vazias à direita por padrão. Isso pode ser alterado adicionando um parâmetro adicional aosplit
builtin (que é0
por padrão nosplit
-builtin com um único argumento String). Para citar o uso desse parâmetro adicional nos documentos:Por esse motivo, geralmente
.split("...",-1)
é usado para reter TODAS as seqüências de caracteres vazias vazias, e eu também poderia ter usado essa resposta ( experimente on-line ). Nesse caso, alterar o+0
para+10
salva dois bytes sobre o,-1
, no entanto. :)fonte
Gelatina , 12 bytes
Experimente online!
Com base na resposta 05AB1E de @ KevinCrujissen, certifique-se de que ele também vota .
fonte
Carvão , 25 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Imprima a plataforma sem mover o cursor, depois mova o cursor para cima e para a esquerda, pois essa é a primeira posição potencial de Jimmy.
Procure tantos Jimmies quanto houver posições na plataforma.
Verifique se há mais de uma peça de plataforma nesta posição.
Nesse caso, observe uma posição válida do Jimmy ...
... e mova três caracteres para a direita para que os Jimmies não se sobreponham.
Caso contrário, a próxima posição potencial de Jimmy é um caractere à direita.
Limpe a plataforma e produza a contagem de posições descobertas.
fonte
PowerShell , 38 bytes
Resposta JavaScript do Port of Arnauld .
Experimente online!
fonte
Olmo 0,19, 108 bytes
Com base no regex na resposta JavaScript de Arnauld . Verifique todos os casos de teste aqui .
Solução alternativa sem regex, significativamente maior a 171 bytes :
Verifique todos os casos de teste aqui .
fonte