Défi
Créer une fonction prend en deux tableaux bidimensionnels de caractères (ou chaînes si le langage de programmation n'a pas de caractères comme type de données) comme entrées: a et b. Si votre langue ne prend pas en charge ces entrées, vous pouvez utiliser toute autre variable standard à un octet.
Votre tâche consiste à déterminer si b contient a. Si tel est le cas, retournez true. Sinon, retournez false.
Exemples de cas de test
a:
123
456
789
b:
123
456
789
devrait retourner vrai.
a:
code
golf
b:
thisis
code!!
golf!!
ohyeah
devrait retourner vrai.
a:
abcd
efgh
ijkl
b:
abcdef
ghijkl
mnopqr
devrait retourner faux.
a:
abc
def
b:
1abc2
3def4
5ghi6
devrait retourner vrai
a:
ab
cd
b:
#ab##
##cd#
devrait retourner faux
Le moins d'octets l'emporte.
a
n'est pas surb
le bord gauche et un cas de test falsey où chaque ligne dea
apparaît sur des lignes consécutives deb
mais avec leurs bords gauches décalés?Réponses:
Brachylog (v2), 4 octets
Essayez-le en ligne!
Exécutez le plus facilement en tant que programme complet, comme d'habitude pour un problème de décision , avec un argument spécifié comme ligne de commande, b sur l'entrée standard. La question demande une fonction, et le programme fonctionne également comme une fonction, avec b à gauche, a à droite et sortie via la production d'une exception si et seulement si la décision est fausse .
Explication
L '«assertion rectangulaire» est évidemment inutile, comme la question le garantit déjà. Le reste du programme effectue la recherche de grille pour nous en identifiant une sous-chaîne des lignes et des colonnes, c'est-à-dire une sous-matrice.
Méta-discussion
Nous avons déjà posé une question très similaire ; Je m'attends à ce que la plupart des réponses à une question soient modifiables en réponses à l'autre. Je pense que c'est la version plus soignée de celui-ci, cependant.
la source
Python 2 , 67 octets
Essayez-le en ligne!
Prend la saisie sous forme de listes de tuples de caractères.
Essaie toutes les sous-grilles de
b
et vérifie s'il ena
fait partie. Les sous-grilles sont générées en se ramifiant récursivement en supprimant la première rangéeb
ou en la faisant pivoter de 90 degrés. Après exactement quatre rotations, vérifie si la réductionb
est égale àa
.la source
J ,
211587 octetsEssayez-le en ligne!
-7 octets grâce à Bolce Bussiere
réponse originale
J ,
2115 octetsEssayez-le en ligne!
-6 octets grâce à FrownyFrog
Comment
<@[
arg de boîte gauche$@[<;.3]
tous les rectangles dans l'arg droit avec la même forme que l'arg gauchee.&,
la source
<@[e.&,$@[<;.3]
+/@:,@E.
. E. est à peu près fait pour ce défi.Fusain , 26 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Fortement basé sur ma réponse à Count les sous - matrices contiguës , la seule différence étant qu'au lieu de prendre la somme des correspondances, je prends le maximum, et à cause de la conversion de chaîne implicite due à l'utilisation du
⭆
résultat est déjà une chaîne qui enregistre un octet.la source
05AB1E , 10 octets
Prend
b
comme première entrée,a
comme deuxième. Les deux entrées sous forme de matrices de caractères.Port de la réponse 05AB1E de @ Mr.Xcoder pour ce défi connexe , alors assurez-vous de lui donner un vote positif!
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
la source
Python 2 ,
106118 118113 octetsEssayez-le en ligne!
la source
Wolfram Language (Mathematica) , 46 octets
Essayez-le en ligne!
Fonction curry: appeler avec
f[a][b]
.Existe-t-il des alternatives plus courtes à
Or@@Or@@@
ouDimensions
?la source
JavaScript (ES6) ,
131 112105 octets105 octets:
Essayez-le en ligne!
Changements:
m[i]
dansx
etn[z]
dansl
: totalement oublié que ces variables ont déjà été instanciées&&
dans&
: les deux côtés de l'opérateur sont déjà des booléens donc un opérateur au niveau du bit fonctionnera112 octets:
Essayez-le en ligne!
Changements:
map((c,j)=>{...}).some(s=>s)
ensome((c,j)=>{...})
: Redondancem[i+z].join()
enm[i+z]+''
: un moyen plus court de convertir le tableau en chaîneindexOf(n[z].join(),j)
enindexOf(n[z],j)
: laindexOf
méthode est déjà convertien[z]
en chaîne131 octets:
Essayez-le en ligne!
Lisible:
Au lieu de comparer les valeurs individuelles, j'ai vérifié si les lignes de la grille N étaient incluses dans les lignes de la grille M, et si oui, à quels indices. Si toutes les lignes sont incluses à partir du même indice, la grille N est contenue dans la grille M.
la source
PowerShell ,
711028598 octetsmerci @Jo King; cas de test ajoutés.
Essayez-le en ligne!
Moins golfé:
la source
Javascript, 150 octets
Essayez-le en ligne
la source