No menor número possível de bytes, determine se os dois valores fornecidos a cada correspondem a um dos seguintes:
Primeiro 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
Exemplos
2 'Bee' true
'2' 'b' true
'not to' 'be' false
'that is' 'the question' false
Respostas:
Shakespeare , 4778 bytes
Nota: esta resposta não pretende ser um concorrente sério
Emite 0 se falso, 1 se verdadeiro.
Isso poderia ser facilmente mais curto (e, se as pessoas realmente quiserem, o tamanho das palavras poderá ser reduzido), mas fazer isso seria um tapa na cara do bom e velho Will. Eu sempre senti que Horatio é o herói desconhecido de Hamlet, por isso me certifiquei de que ele fosse o responsável por entregar o monólogo intenso a Hamlet, onde Hamlet tem que provar que ele é tão bom quanto Horatio (que representa a nova linha).
O código em si é bem simples. Todos os caracteres sem Hamlet são valores ASCII (em ordem:)
newline,space,0,2,3,B,b,E,e,O,o,T,t,V,v
e, em seguida, o código é uma máquina de estado simples (especificamente, um DFA ) que faz a transição paraScene XI
um estado de aceitação eScene XII
um estado de rejeição..
Depois de fazer isso, apenas o pluguei em Shakespeare, usando o fato de que eu poderia descer para o próximo estado quando eles fossem numericamente adjacentes. Eu o testei apenas com a versão de Shakespeare que vinculei no título, mas acredito que definimos uma linguagem por meio de uma implementação iirc.
fonte
Retina , 28
Possivelmente, a minha resposta mais rápida em golfe com código - 9 minutos após o OP.
Os parâmetros de entrada são separados por vírgula. A saída é 1 para verdade e 0 para falsey.
Experimente online.
fonte
Pitão, 34 bytes
Experimente online: Demonstração
Explicação:
fonte
Pitão, 41 bytes
Experimente aqui!
Pesquisa direta na lista. Imprime uma lista vazia como valor falso e uma lista não vazia como valor verdadeiro.
Procurando ou de uma maneira melhor, eu realmente não gosto deste.
fonte
Oracle SQL 11.2, 86 bytes
Retorna uma linha para truthy e nenhuma linha para falsey.
fonte
05AB1E ,
3945 bytesCódigo:
Experimente online!
Usa a codificação CP-1252. Verdade é quando um número é emitido e falso é quando nada é emitido.
Versão não concorrente (39 bytes) , funciona com a versão mais recente:
fonte
ES6,
564845 bytesEconomizou 5 bytes graças a @ user81655. Economizou 3 bytes de alguma otimização adicional. Economizou mais 3 bytes graças a @Patrick Roberts.
t[wo]?o
é o menor regex que eu poderia pensar em combinar os três homofones.Se for permitido passar os dois valores como uma matriz de parâmetro único, o parâmetro restante poderá se tornar um parâmetro normal, economizando outros 5 bytes.
fonte
(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/.test(a)
i
bandeira está faltando.Perl 6,
4544 bytesObrigado ao pessoal do IRC por me ajudarem a jogar golfe
uso
Alternativa não concorrente, 54 bytes
Essa é uma boa alternativa para as opções acima, se você acha que as expressões regulares são brutas, mas é um pouco mais longa. Poderia ser jogado mais alguns bytes, mas como não é competitivo, deixarei como está.
fonte
[
e]
indica um grupo que não captura em uma regex, que seria escrito como(?:
e)
no Perl 5. Para obter uma classe de personagem, você deve colocá-lo entre colchetes<[
e]>
.Python 2.7, 133 bytes
Não tenho certeza se devemos postar soluções, se houver uma versão menor nos comentários, mas aqui está a minha versão no Python.
Edit: Sem a função, são apenas 73 bytes (e isso nem chega perto das melhores respostas. Desculpe-me, sou novo
fonte
2
(inteiro)e('oo', '3')
semelhantes .Ruby,
535552 bytesSerei honesto, esta é minha primeira tentativa de tentar resolver um problema.
Chamada de função na forma de
f.call(firstValue, secondValue)
0
é Truthy,nil
é Falsy.Teste aqui
fonte
Japonês, 36 bytes
Talvez eu tenha perdido alguma coisa, mas isso deve funcionar completamente. Teste online!
fonte
Pitão, 39 bytes
-3 bytes por @FryAmtheEggman
Experimente aqui .
fonte
Python,
8583 bytesO @Manatwork me salvou dois bytes.
Esta é uma força bastante bruta, abordarei as soluções regex a seguir.
fonte
'2 to too two t0'.split()
Para a segunda matriz, não faz diferença.'2,to,too,two,t0'.split(',')
. Eu tolo.PowerShell v3 +,
7470 bytesNão usa regex. Pega duas entradas, verifica se a primeira é
-in
a matriz que foi criada dinamicamente pelo-split
operador, converte esse booleano em um int+
e depois multiplica isso*
com a verificação se o segundo é-in
o segundo array (que converterá o booleano automaticamente como int ) Isso funciona porquex*y == x&y
sex
ey
só pode ser1
ou0
.O PowerShell, por padrão, não diferencia maiúsculas de minúsculas; portanto, obtemos isso gratuitamente. Irá imprimir
0
ou1
para Falsey / truthy, respectivamente. Requer v3 ou mais recente para o-in
operador.Editar - salvou 4 bytes usando -split unário
fonte
Groovy, 52 bytes
==~
é um operador legal de regex no groovy que verifica a igualdade.Testes:
Teste Regex101 .
fonte
x
ét
ey
é0b
?f('t', '0b')
ser falso, mas estou preocupado que seu código retorne verdadeiro.MATL , 32
4143bytesMesma abordagem da resposta Retina da DigitalTrauma . As entradas são separadas por vírgula. Saída de verdade é uma string com as duas entradas em minúsculas; falsy não é saída.
Experimente online!
fonte
C # 6, 132 bytes
Versão ungolfed (apenas um pouco mais legível):
fonte
Python 2, 67 bytes
Usa o regex do Digital Trauma. Entrada é uma única sequência separada por vírgula. Não tenho certeza se esse formato é permitido para entrada ...
fonte