En este desafío simple pero divertido , se le pidió que determinara si Jimmy se caería de su plataforma. Jimmy tiene tres partes del cuerpo /
, o
y \
dispuesta como este
/o\
Las plataformas se representan con -
. Jimmy se caerá de su plataforma si tienen dos o más partes del cuerpo que no están directamente encima de una plataforma.
Algunos ejemplos:
/o\
- -------
Jimmy se equilibrará ya que todas sus partes del cuerpo están por encima de a -
.
/o\
------ ---
Jimmy se equilibrará ya que dos partes del cuerpo están por encima del -
s.
/o\
-- ---- --
Jimmy se equilibrará aunque estén divididos entre dos plataformas
/o\
-
Jimmy no se equilibrará ya que dos partes del cuerpo no están por encima de una plataforma.
Su tarea es escribir un programa que tome una plataforma como un contenedor alargado que contenga solo -
sy s (por ejemplo, una cadena) y genere el número de Jimmys que se pueden colocar en la plataforma de modo que ninguno de ellos se caiga y ninguno de ellos caiga superposición. Un Jimmy puede tener una de sus partes del cuerpo a la izquierda del comienzo de la cuerda o a la derecha del final de la cuerda.
Este es el código de golf, por lo que las respuestas se puntúan en bytes con menos bytes como objetivo.
Casos de prueba
Entradas
- - -
- -
--
-- --
----
- -- --
------- -
Salidas respectivas
0
0
1
1
2
2
2
3
---
no estaba sentado bien a mí tampoco, hasta que yo estaba trabajando en mi puerto y se dio cuenta de que no eran necesarios. Creo que lo llamaré un día aquí, agarrar una bolsa de latas y tirar SMG yo mismo - no lo he jugado en una época.Python 2 , 53 bytes
Pruébalo en línea!
Basado en la expresión regular de Arnauld . Busca con avidez todas las subcadenas de longitud 3 no superpuestas con dos o más
-
. Un truco consiste en`s`
encerrar la cadena de entrada entre comillas como relleno para dejar espacio para que Jimmys cuelgue en cualquier extremo comoPython 2 , 57 bytes
Pruébalo en línea!
Requiere un formato cursi de E / S de la entrada ya entre comillas. Salidas
False
para 0.Una función recursiva que coloca a cada Jimmy en la posición más a la izquierda permitida, ya sea colocando a Jimmy sobre los primeros tres caracteres si pueden sostener a Jimmy, o eliminando el primer carácter. Un buen truco es verificar si
s[:3]
contiene dos o más-
haciendo'--'in s[:3]*2
, lo que concatena dos copiass[:3]
y comprueba dos adyacentes-
.fuente
Perl 5
-p
, 28 bytesUtiliza el mismo método que JavaScript de @ Arnauld.
Pruébalo en línea!
fuente
Japt , 16 bytes
Basado en la solución JS original de Arnauld. Intenté algunos métodos diferentes para obtener el relleno necesario a cada lado de la entrada, pero todos llegaron a la misma longitud, aún buscando una forma más corta ...
Pruébalo
fuente
Excel, 96 bytes
A1
= plataforma. Ingresado como matriz FórmulaCtrl
+Shift
+Enter
fuente
05AB1E , 16 bytes
Definitivamente se puede jugar golf. A veces es molesto ver todas estas respuestas de expresiones regulares en un desafío cuando se usa 05AB1E, que carece de expresiones regulares de ningún tipo. ;)
Pruébelo en línea o verifique todos los casos de prueba .
Explicación:
fuente
Ruby , 39 bytes
Pruébalo en línea!
fuente
Stax , 13 bytes
Ejecutar y depurarlo
fuente
Java 8, 41 bytes
Pruébalo en línea.
Puerto de la respuesta de JavaScript de @Arnauld , excepto que
+0
es+10
para solucionar casos de prueba como----
. Esto es necesario porque el valorString#split
incorporado en Java eliminará las cadenas vacías finales de forma predeterminada. Esto se puede cambiar agregando un parámetro adicional alsplit
builtin (que está0
por defecto en elsplit
-builtin con un solo argumento String). Para citar el uso de este parámetro adicional de los documentos:Debido a esto, generalmente
.split("...",-1)
se usa para retener TODAS las cadenas vacías finales, y también podría haberlo usado para esta respuesta ( Pruébelo en línea ). Sin embargo, en este caso, cambiar el+0
a+10
guarda dos bytes sobre el,-1
. :)fuente
Jalea , 12 bytes
Pruébalo en línea!
Residencia en la respuesta 05AB1E de @ KevinCrujissen, así que asegúrese de votarlo también.
fuente
Carbón de leña , 25 bytes
Pruébalo en línea!El enlace es a la versión detallada del código. Explicación:
Imprima la plataforma sin mover el cursor, luego mueva el cursor hacia arriba y hacia la izquierda, ya que esa es la primera posición potencial de Jimmy.
Busque tantos Jimmies como puestos de plataforma.
Verifique si hay más de una pieza de plataforma en esta posición.
Si es así, observe una posición válida de Jimmy ...
... y mueve tres personajes a la derecha para que los Jimmies no se superpongan.
De lo contrario, la siguiente posición potencial de Jimmy es un personaje a la derecha.
Despeje la plataforma y genere el recuento de posiciones descubiertas.
fuente
Potencia Shell , 38 bytes
La respuesta de JavaScript del puerto de Arnauld .
Pruébalo en línea!
fuente
Elm 0.19, 108 bytes
Basado en la expresión regular en el JavaScript de Arnauld respuesta de . Verifique todos los casos de prueba aquí .
Solución alternativa sin expresiones regulares, significativamente más larga en 171 bytes :
Verifique todos los casos de prueba aquí .
fuente