No sé acerca de todo lo que estoy pero no se prepara para Halloween - nunca lo hizo nunca - pero, es mi vecino, lo que vamos a ayudar a salir.
Necesita ayuda para determinar qué marca de dulces tiene, pero tiene tantos dulces que no podría terminar antes de Halloween.
Ella tiene:
- Snickers
- Kit Kat
- Starburst
- Ositos de goma
- Twix
Entrada
Una cadena multilínea (o cualquier otra forma razonable) que contenga solo letras y espacios.
Salida
Un valor falso si no es un dulce válido, o qué dulce es si es un dulce.
Cómo decidir qué dulce es
Un caramelo es válido si dice una de las marcas anteriores en él. Sin embargo, no es tan simple, porque este es un dulce válido:
K i t
K a
t
Un dulce válido es aquel donde:
- las letras están en orden de izquierda a derecha
- las letras están en mayúscula correctamente
- las letras, yendo de izquierda a derecha, no tanto subir y bajar
- las letras con espacios en blanco eliminados forman una de las marcas anteriores
Este es el código de golf , por lo que gana el código más corto en bytes.
Ejemplos
Truthys
1.
kers
c
i
n
S
2.
Kit K a t
3.
St a
r b u
r st
4.
Bear s
G ummy
5.
T w i
x
Falsys:
1.
SNICKERS
2.
C n
a d y
3.
xiwT
4.
S C I
ss o
r s
5.
Kit
Kat
Respuestas:
Pyth - 72 bytes
Espero haber captado todos los casos límite. Basará comprimir la lista de dulces.
Test Suite .
fuente
JavaScript (ES6),
221218216212208205201 bytesPruébalo aquí.
fuente
Snick
,ears|T
etc. Creo que puede solucionar esto agregando.split('|')
antes.indexOf
.ears|T
no es el problema porque solo se permiten letras en los casos de prueba. Sin embargo, tienes razón, paraSnick
.Raqueta 446 bytes
Sin golf:
Pruebas:
Salida:
fuente
JavaScript (ES6), 139 bytes
Acepta entradas como una matriz de cadenas rellenas de espacio.
fuente
R, 199 caracteres
La entrada tiene la forma de una matriz de caracteres.
match
se encarga de qué dulce es (también comprueba las mayúsculas).Para verificar que las letras son una secuencia "ascendente" o "descendente", solo tenemos que verificar que las ubicaciones del primer carácter no espacial (si existe) en cada fila estén aumentando o disminuyendo. Para hacer esto, nosotros
apply
diff
. Esto podría tener algo de cero, de lo contrario debería ser todo positivo o todo negativodiff
z
y toma el producto externo consigo mismo. Si el diferencial tenía entradas mixtas positivas y negativas, habrá una entrada negativa en algún lugar de su producto externo. Si es así, devuelve FALSE.Tenga en cuenta que casos como
devolverá un vector de caracteres vacío (en particular, no "Twix"), ya
match
que intentará hacer coincidir "Twxi".fuente
Python 2.7, 254 bytes
Estoy seguro de que se puede jugar más al golf. La entrada es una matriz de líneas
s
.Pruébalo aquí!
fuente