¿Recuerdas mi esterilla correctamente agrupada por colores ?
Ayer lo estaba mirando y me di cuenta de que algunas letras encajan dentro de otras. Ejemplo: una letra P
cabe en el lugar donde R
va la letra . Así que aquí hay un desafío simple: dadas dos letras, devuelve un valor verdadero si alguna de las letras encaja dentro de la otra (directamente o girado, pero no invertido), o un valor falsey si no lo hacen. Es decir, si la entrada es [P,R]
o [R,P]
, debe devolver la verdad porque en ambos casos una letra cabe dentro de la otra. Si lo consigues [L,U]
debes regresar falsey ya que ninguno cabe dentro del otro.
Reglas
- La entrada debe tener dos caracteres alfanuméricos en el rango [0-9A-Z], ya que también hay números en el tapete, en cualquier forma que necesite (dos caracteres separados como dos entradas, una lista con dos caracteres, una cadena con el 2 caracteres, lo que sea).
- La salida debe ser coherente (los valores de veracidad y falsey deben ser siempre los mismos).
La siguiente es la tabla de ajustes (tenga en cuenta que una letra siempre cabe en su lugar correcto, en caso de que obtenga algo
[Y,Y]
como entrada):char fits inside chars -------------------------------------------------------- C G,O F B,E,P,R G O I 0,1,7,B,D,E,F,H,K,L,M,N,O,P,R,T,V,W,X,Z L E M W P R S O V A W M 0 O 1 B,E,L 3 O 6 9,O 8 O 9 6,O
Juro solemnemente que he probado cada ajuste en la colchoneta de mi hijo. (Se seca el sudor de la frente).
Este es el código de golf , ¡así que puede ganar el código más corto para cada idioma!
Algunos casos de prueba
input output
-------------
[C,G] truthy (C fits inside G)
[G,C] truthy (C fits inside G)
[F,R] truthy (F fits inside R)
[M,W] truthy (both fit inside the other)
[O,S] truthy (S fits inside O)
[T,T] truthy (T fits in its place)
[E,V] falsey (no fit found)
[P,L] falsey
Puesto de sandbox . Por favor, perdóname si ves más accesorios que me perdí. Muchas gracias a Οurous por ayudarme con la lista de accesorios.
fuente
1
no encajaF
?1
para que quepa en el,F
pero eso no está permitido en mi tapete. :-)Respuestas:
Python 2 ,
135130129 bytes-1 byte gracias a Lynn
Pruébalo en línea!
Python 3 , 143 bytes
Pruébalo en línea!
fuente
Retina ,
9392 bytesPruébalo en línea! Editar: Guardado 1 byte gracias a @ovs.
fuente
limpia ,
276226 bytesVagamente golfista. Puliré mañana.
Pruébalo en línea!
fuente
Haskell ,
149145 bytesPruébalo en línea!
fuente
Javascript
155 153 151149 bytesCreo que esto funciona en todos los casos, 1/0 para verdadero / falso.
Explicación:
Registro de cambios:
fuente
c
encajaf
of
encajac
? Parece que solo marca un caso.f
cabec
includes(f)
lugar deindexOf(f)>=0
guardar 2 bytes.Julia 0.6 , 139 bytes
Pruébalo en línea!
Guarda algunos bytes al agrupar los caracteres que se ajustan a 'O'. Pero probar la entrada invertida usa demasiado código ...
Explicación:
zip(☐)
comprime las letras individuales correspondientes de"OCFILMPV16"
& una cadena de letras coincidentes..in(☐)
se aplica por elementos, p. ej.(in(a,'O'),in(b,"OCFILMPV16"))
all(.in(☐))
Ambos deben ser encontrados ...|
para cualquieraa,b
ob,a
...any(map(☐))
para al menos un elemento de la lista comprimida.fuente
Kotlin ,
147139 bytesPruébalo en línea!
El ejemplo de Try It Online incluye casos de prueba para cada combinación positiva y algunas negativas.
No he optimizado el reg.ex. demasiado, por lo que podría ser más largo de lo necesario
EDITAR: guardado algunos bytes en reg.ex.
fuente
C (gcc) , 211 bytes
Un primer intento. Muy sencillo.
Pruébalo en línea!
fuente
PHP , 204 bytes
-147 bytes porque volví a la cámara para eliminar 2 bytes solo para descubrir que mi código tenía algunos errores y variables no utilizadas. Mi código ahora es mucho más corto.
Pruébalo en línea!
fuente
Rubí, 140 bytes
Más o menos lo mismo que la respuesta de Python 3, pero con una ejecución diferente.
fuente