Desafio
Criar uma função recebe duas matrizes bidimensionais de caracteres (ou seqüências de caracteres se a linguagem de programação não possuir caracteres como um tipo de dados) como entradas: a e b. Se o seu idioma não suportar essas entradas, você poderá usar qualquer outra variável de um byte padrão.
Sua tarefa é determinar se b contém a. Se assim for, retorne true. Caso contrário, retorne false.
Casos de teste de amostra
a:
123
456
789
b:
123
456
789
deve retornar verdadeiro.
a:
code
golf
b:
thisis
code!!
golf!!
ohyeah
deve retornar verdadeiro.
a:
abcd
efgh
ijkl
b:
abcdef
ghijkl
mnopqr
deve retornar false.
a:
abc
def
b:
1abc2
3def4
5ghi6
deve retornar verdadeiro
a:
ab
cd
b:
#ab##
##cd#
deve retornar falso
Menos bytes ganham.
a
verdade onde não está nab
borda esquerda de um caso de teste de Falsey em que cada linhaa
aparece em linhas consecutivas,b
mas com as bordas esquerdas escalonadas?Respostas:
Braquilog (v2), 4 bytes
Experimente online!
Mais facilmente executado como um programa completo, como de costume para um problema de decisão , com um especificado como argumento da linha de comandos, b na entrada padrão. A pergunta pede uma função, e o programa também funciona como uma função, com b à esquerda, a à direita e saída através da produção de uma exceção se e somente se a decisão for falsa .
Explicação
O "afirmar retangular" é, obviamente, inútil, como a questão já garante isso. O restante do programa faz a busca por grade, identificando uma subcadeia de linhas e colunas, ou seja, uma submatriz.
Meta-discussão
Já tivemos uma pergunta muito parecida antes; Eu esperaria que a maioria das respostas para uma pergunta fosse modificável em respostas para a outra. Eu acho que essa é a versão mais limpa, no entanto.
fonte
Python 2 , 67 bytes
Experimente online!
Recebe entradas como listas de tuplas de caracteres.
Tenta todas as sub-grades
b
e verifica sea
está entre elas. As sub-grades são geradas ramificando-se recursivamente, removendo a primeira linhab
ou girando-a 90 graus. Após exatamente quatro rotações, verifica se o recortadob
é igual aa
.fonte
J ,
211587 bytesExperimente online!
-7 bytes graças a Bolce Bussiere
resposta original
J ,
2115 bytesExperimente online!
-6 bytes graças ao FrownyFrog
como
<@[
caixa esquerda arg$@[<;.3]
todos os retângulos no argumento direito com a mesma forma que o argumento esquerdoe.&,
fonte
<@[e.&,$@[<;.3]
+/@:,@E.
. E. é praticamente feito para esse desafio.Carvão , 26 bytes
Experimente online! Link é a versão detalhada do código. Altamente baseado em minha resposta para Contar as submatrizes contíguas , a única diferença é que, em vez de pegar a soma das correspondências, eu levo o máximo e, devido à conversão implícita de strings devido ao uso do
⭆
resultado, já é uma string que salva um byte.fonte
05AB1E , 10 bytes
Toma
b
como primeira entrada,a
como segundo. Ambas as entradas como matrizes de caracteres.Porto da resposta 05AB1E de @ Mr.Xcoder para este desafio relacionado , portanto, certifique-se de o vota!
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte
Python 2 ,
106118113 bytesExperimente online!
fonte
Wolfram Language (Mathematica) , 46 bytes
Experimente online!
Função ao curry: ligue com
f[a][b]
.Existem alternativas mais curtas para
Or@@Or@@@
ouDimensions
?fonte
JavaScript (ES6) ,
131 112105 bytes105 bytes:
Experimente online!
Alterar:
m[i]
inx
andn[z]
intol
: esqueci totalmente que essas variáveis já foram instanciadas&&
into&
: Ambos os lados do operador já são booleanos, portanto um operador bit a bit funcionará112 bytes:
Experimente online!
Alterar:
map((c,j)=>{...}).some(s=>s)
emsome((c,j)=>{...})
: Redundânciam[i+z].join()
intom[i+z]+''
: uma maneira mais curta de converter a matriz em uma stringindexOf(n[z].join(),j)
intoindexOf(n[z],j)
: OindexOf
método já se converten[z]
em uma string131 bytes:
Experimente online!
Legível:
Em vez de comparar valores individuais, verifiquei se as linhas da grade N foram incluídas nas linhas da grade M e, em caso afirmativo, em quais índices. Se todas as linhas forem incluídas iniciando no mesmo índice, a grade N estará contida na grade M.
fonte
PowerShell ,
711028598 bytesobrigado @Jo King; casos de teste adicionados.
Experimente online!
Menos golfe:
fonte
Javascript, 150 bytes
Experimente online
fonte