Viajar com eletrônicos é sempre divertido, especialmente quando você precisa de um adaptador para carregá-los. Seu desafio é facilitar um pouco o planejamento de uma viagem, verificando se um determinado plugue será compatível com um soquete.
Desafio
Dado um tipo de plug e um tipo de soquete, retorne um valor que indica se eles trabalharão juntos ou não.
Tabela de compatibilidade
Socket Accepted plugs | Plug Accepting Sockets
A A | A A, B
B A, B | B B
C C | C C, D, E, F, H, J, K, L, N, O
D C, D, E, F | D D
E C, E, F | E D, E, F, H, K, O
F C, E, F | F D, E, F, H, K, O
G G | G G
H C, E, F, H | H H
I I | I I
J C, J | J J
K C, E, F, K | K K
L C, L | L L
M M | M M
N C, N | N N
O C, E, F, O | O O
As tabelas mostram as mesmas informações, apenas transpostas.
Entrada
A entrada será dada como duas letras maiúsculas ou duas minúsculas (você escolhe).
As entradas sempre serão
/[A-O]/
(ou/[a-o]/
), não há necessidade de lidar com entradas inválidas.Você pode aceitar as duas entradas em qualquer ordem (especifique qual).
A entrada pode ser obtida em qualquer formato razoável (string, stdin, array, ...).
Se você pegar as duas entradas em uma única sequência, elas podem ser separadas por não mais que um caractere e não deve haver nada ao seu redor
Boas entradas:
"G,K"
,"EF"
,"a b"
,['l', 'o']
Bad entradas:
"K l"
,"f(O)(I)"
,[1,5]
Resultado
A saída pode ser retornada em qualquer formato razoável .
Saída deve ser
truthy
/falsy
ou um de 2 valores constantesBons resultados:
false
/any positive number
,1
/2
,'T'
/'F'
Saídas incorretas:
an even number
/an odd number
,1
/more than 1
Exemplos
Usando o formato socket
, plug
=> true
/ false
.
A, A => true
I, K => false
O, C => true
C, O => false
E, F => true
F, E => true
As brechas padrão não são permitidas.
Isso é código-golfe, então a resposta com o menor número de bytes em cada idioma vence.
fonte
Respostas:
Retina 0.8.2 ,
3029 bytesExperimente online! O link inclui casos de teste.
fonte
Python 3 , 76 bytes
Experimente online!
Créditos:
fonte
lambda s,p:any([s==p,p in"CEF"and s in"DEFHKO",s=="B"<p,s in"JLN"and"C"==p])
por 76 bytes?Python 3 ,
72 bytes73 bytes70 bytesExperimente online!
Edit: Obrigado a Chas Brown por cortar um pouco de gordura!
fonte
q=
pode ser omitido, pois a função é anônima. Além disso, há um espaço extra. 70 bytes. Experimente online.C (gcc) (arquitetura x86),
7660 bytesMuito obrigado a Arnauld pelas mudanças!
Os argumentos são dados em ordem (plugue, soquete).
Experimente online!
fonte
1<<~-b
.L"\6\0\xdd78\0襰襰"
vez de{6,0,56696,0,35184,35184}
Haskell, 67 bytes
Os argumentos para funcionar
#
são dois caracteres, primeiro plug, segundo socket.Experimente online!
fonte
JavaScript (Node.js) , 79 bytes
Chamado como uma função ao curry
f(socket)(plug)
,.Experimente online! (inclui casos de teste, mostrando uma matriz de resultados.)
fonte
Gelatina , 31 bytes
Um link monádico que aceita uma lista de caracteres
[plug,socket]
que gera1
se compatível ou0
não.Experimente online! Ou veja um conjunto de testes (que separa as duas classes).
fonte
PHP , 81 bytes
Para executá-lo:
Exemplo:
Ou Experimente online!
Notas:
error_reporting=0
opção é usada para não emitir avisos.Quão?
Cada plugue é compatível com o mesmo soquete que ele. Existem quatro fichas especiais (A, C, E, F) que também são compatíveis com mais algumas tomadas. Quatro variáveis de string com o nome dos plugues especiais são definidas para manter a lista de seus soquetes adicionais compatíveis.
É verificado se o plugue e o soquete de entrada são iguais ou se o soquete está na lista de soquetes compatíveis para esse plugue. A última verificação é feita com a ajuda das variáveis variáveis do PHP .
fonte
Javascript ES6,
666564 caracteresToma letras maiúsculas para
p
a ficha es
para o soquete, retornos Falsas (0
) ou truthy (1
,2
,4
, ...,8192
valor).Teste:
fonte
ERR_CONNECTION_RESET
https
? Outros links TIO funcionam? Eu tentei no mac (chrome e safari) e android e ele funciona bem ...R ,
132 129113 bytesExperimente online!
Cria a seguinte matriz e extrai
m[S,P]
=> 1 se TRUE, caso contrário 0.Economizou 3 bytes compactando índices usando
intToUtf8
e substituindo esta função por!
. Veja Histórico para uma versão mais legível.Guardado 16 bytes graças a @Giuseppe!
fonte
t=
entrarrep
?Pascal (FPC) , 113 bytes
Experimente online!
Teste para todos os valores
Seguindo o
DEFHKO
trem ...pos(string1,string2)
verifica a primeira ocorrência destring1
instring2
e retorna sua posição nele ou 0 se não existir.fonte