En la menor cantidad de bytes posible, determine si los dos valores dados a cada uno coinciden con uno de los siguientes:
Primer valor
2 string or integer - whichever you prefer
to case insensitive
too case insensitive
two case insensitive
t0 case insensitive (t zero)
Segundo valor
b case insensitive
be case insensitive
bee case insensitive
b3 case insensitive
Ejemplos
2 'Bee' true
'2' 'b' true
'not to' 'be' false
'that is' 'the question' false
Respuestas:
Shakespeare , 4778 bytes
Nota: esta respuesta no pretende ser un competidor serio
Emite 0 si es falso, 1 si es verdadero.
Esto podría ser fácilmente más corto (y si la gente realmente quiere que lo haga, la longitud de las palabras podría reducirse), pero hacerlo sería una bofetada a la buena voluntad. Siempre he sentido que Horatio es el héroe no reconocido de Hamlet, así que me aseguré de que fuera él quien entregara el intenso monólogo a Hamlet, donde Hamlet tiene que demostrar que es tan bueno como Horatio (que representa la nueva línea).
El código en sí es bastante simple. Todos los caracteres sin Hamlet son valores ascii (en orden:)
newline,space,0,2,3,B,b,E,e,O,o,T,t,V,v
y luego el código es una máquina de estado simple (específicamente, un DFA ) que pasa aScene XI
un estado de aceptación yScene XII
un estado de rechazo..
Después de hacer esto, simplemente lo conecté a Shakespeare, usando el hecho de que podría desplegarme al siguiente estado cuando fueran numéricamente adyacentes. Solo lo probé con la versión de Shakespeare que vinculé en el título, pero creo que definimos un lenguaje mediante una implementación iirc.
fuente
Retina , 28
Posiblemente mi respuesta de código de golf más rápida: 9 minutos después de la OP.
Los parámetros de entrada están separados por comas. La salida es 1 para la verdad y 0 para falsey.
Pruébalo en línea.
fuente
Pyth, 34 bytes
Pruébelo en línea: demostración
Explicación:
fuente
Pyth, 41 bytes
Pruébalo aquí!
Lista de búsqueda directa. Imprime una lista vacía como valor falso y una lista no vacía como valor verdadero.
Mirando o una mejor manera aunque, realmente no me gusta este.
fuente
Oracle SQL 11.2, 86 bytes
Devuelve una fila para la verdad y ninguna fila para Falsey.
fuente
05AB1E ,
3945 bytesCódigo:
Pruébalo en línea!
Utiliza la codificación CP-1252. La verdad es cuando se emite un número y la falsedad es cuando no se emite nada.
Versión no competitiva (39 bytes) , funciona con la versión más nueva:
fuente
ES6,
564845 bytesGuardado 5 bytes gracias a @ user81655. Guardado 3 bytes de alguna optimización adicional. Ahorró otros 3 bytes gracias a @Patrick Roberts.
t[wo]?o
es la expresión regular más corta que se me ocurre para que coincida con los tres homófonos.Si se permite pasar los dos valores como una sola matriz de parámetros, entonces el parámetro de descanso puede convertirse en un parámetro normal, ahorrando otros 5 bytes.
fuente
(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/.test(a)
i
indicador no se encuentra.Perl 6,
4544 bytesGracias a la gente de IRC por ayudarme a jugar golf.
uso
Alternativa no competitiva, 54 bytes
Esta es una buena alternativa a lo anterior si cree que las expresiones regulares son asquerosas, pero es un poco más largo. Podría reducirse un par de bytes más, pero como no compite, lo dejaré como está.
fuente
[
y]
denote un grupo no capturador en una expresión regular, que se escribiría como(?:
y)
en Perl 5. Para obtener una clase de personaje, debe colocarlos entre paréntesis angulares<[
y]>
.Python 2.7, 133 bytes
No estoy seguro de si debemos publicar soluciones si hay una versión más pequeña en los comentarios, pero aquí está mi versión en Python.
Editar: sin la función solo son 73 bytes (y eso ni siquiera está cerca de las mejores respuestas. Perdóname, soy nuevo
fuente
2
(entero)e('oo', '3')
y similares .Ruby,
535552 bytesSeré honesto, este es mi primer intento de tratar de jugar un problema.
Llamada de función en forma de
f.call(firstValue, secondValue)
0
es Verdad,nil
es Falsa.Pruébalo aquí
fuente
Japt, 36 bytes
Tal vez me perdí algo, pero esto debería funcionar por completo. ¡Pruébalo en línea!
fuente
Pyth, 39 bytes
-3 bytes por @FryAmtheEggman
Pruébalo aquí .
fuente
Python,
8583 bytes@Manatwork me ahorró dos bytes.
Esta es una fuerza bruta bastante, buscaré soluciones regex a continuación.
fuente
'2 to too two t0'.split()
para la segunda matriz no hay diferencia.'2,to,too,two,t0'.split(',')
. Tonto de mí.PowerShell v3 +,
7470 bytesNo usa expresiones regulares. Toma dos entradas, comprueba si la primera es
-in
la matriz que ha sido creada dinámicamente por el-split
operador, convierte ese booleano en un int con+
, luego lo multiplica*
al verificar si el segundo es-in
la segunda matriz (que automáticamente convertirá el booleano como un int ) Esto funciona porquex*y == x&y
six
yy
solo puede ser1
o0
.PowerShell por defecto no distingue entre mayúsculas y minúsculas, por lo que lo obtenemos de forma gratuita. Es la salida
0
o1
para Falsey- / Truthy, respectivamente. Requiere v3 o más reciente para el-in
operador.Editar - Guardado 4 bytes usando unary -split
fuente
Groovy, 52 bytes
==~
es un operador de expresiones regulares genial en groovy que verifica la igualdad.Pruebas:
Prueba Regex101 .
fuente
x
est
yy
es0b
?f('t', '0b')
ser falso, pero me preocupa que su código devuelva verdadero.MATL , 32
4143bytesEl mismo enfoque que la respuesta Retina de @ DigitalTrauma . Las entradas están separadas por una coma. La salida de verdad es una cadena con las dos entradas en minúsculas; falso es sin salida.
Pruébalo en línea!
fuente
C # 6, 132 bytes
Versión sin golf (solo un poco más legible):
fuente
Python 2, 67 bytes
Utiliza la expresión regular de Digital Trauma. La entrada es una sola cadena separada por una coma. No estoy seguro si ese formato está permitido para la entrada ...
fuente