Задача
Создать функцию принимает в качестве входных данных два двумерных массива символов (или строк, если язык программирования не содержит символы в качестве типа данных): a и b. Если ваш язык не поддерживает эти входные данные, вы можете использовать любую другую стандартную однобайтовую переменную.
Ваша задача - определить, содержит ли b. Если это так, верните true. В противном случае верните false.
Примеры тестовых случаев
a:
123
456
789
b:
123
456
789
должен вернуть истину.
a:
code
golf
b:
thisis
code!!
golf!!
ohyeah
должен вернуть истину.
a:
abcd
efgh
ijkl
b:
abcdef
ghijkl
mnopqr
должен вернуть false.
a:
abc
def
b:
1abc2
3def4
5ghi6
должен вернуть истину
a:
ab
cd
b:
#ab##
##cd#
должен вернуть false
Меньше байтов побеждает.
a
нетb
левого края, и фальшивый контрольный пример, где каждая строкаa
появляется в последовательных строках,b
но с левыми краями в шахматном порядке?Ответы:
Brachylog (v2), 4 байта
Попробуйте онлайн!
Наиболее легко работать как по полной программе, как обычно для принятия проблемы , с задается как аргумент командной строки, б на стандартный ввод. Вопрос требует функции, и программа также работает как функция, где b слева, a справа и выводится путем создания исключения тогда и только тогда, когда решение ложно .
объяснение
«Утверждать прямоугольник», очевидно, бессмысленно, поскольку вопрос уже гарантирует это. Остальная часть программы выполняет поиск сетки для нас путем определения подстроки строк и столбцов, то есть подматрицы.
Мета-обсуждение
У нас был очень похожий вопрос раньше; Я ожидаю, что большинство ответов на один вопрос могут быть изменены в ответах на другой. Я думаю, что это более аккуратная версия, хотя.
источник
Python 2 , 67 байт
Попробуйте онлайн!
Вводит в виде списков кортежей символов.
Пробует все подсетки
b
и проверяет, есть лиa
среди них. Подрешетки создаются путем рекурсивного ветвления либо при удалении первого ряда,b
либо при его повороте на 90 градусов. Ровно после четырех поворотов проверяет,b
равно ли обрезанное значениеa
.источник
J ,
211587 байтовПопробуйте онлайн!
-7 байт благодаря Bolce Bussiere
оригинальный ответ
J ,
2115 байтПопробуйте онлайн!
-6 байт благодаря FrownyFrog
как
<@[
в штучной упаковке левый арг$@[<;.3]
все прямоугольники в правом аргументе имеют ту же форму, что и левый аргументe.&,
источник
<@[e.&,$@[<;.3]
+/@:,@E.
. Э. в значительной степени создан для этой задачи.Древесный уголь , 26 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Основываясь на моем ответе « Подсчитать смежные подматрицы» , единственное отличие состоит в том, что вместо взятия суммы совпадений я беру максимум, а из-за неявного преобразования строки из-за использования
⭆
результата уже получается строка, которая сохраняет байт.источник
05AB1E , 10 байтов
Принимает
b
как первый вход,a
как второй. Оба ввода в виде символьных матриц.Port of @ Mr.Xcoder 's 05AB1E ответит на этот связанный вызов , так что не забудьте его поддержать!
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
Python 2 ,
106118113 байтовПопробуйте онлайн!
источник
Wolfram Language (Mathematica) , 46 байтов
Попробуйте онлайн!
Curried функция: вызов с
f[a][b]
.Есть ли более короткие альтернативы
Or@@Or@@@
илиDimensions
?источник
JavaScript (ES6) ,
131 112105 байт105 байтов:
Попробуйте онлайн!
Изменения:
m[i]
вx
иn[z]
вl
: полностью забыл, что эти переменные уже были созданы&&
в&
: обе стороны оператора уже логические, поэтому побитовый оператор будет работать112 байт:
Попробуйте онлайн!
Изменения:
map((c,j)=>{...}).some(s=>s)
вsome((c,j)=>{...})
: Избыточностьm[i+z].join()
вm[i+z]+''
: более короткий способ преобразовать массив в строкуindexOf(n[z].join(),j)
вindexOf(n[z],j)
: TheindexOf
метода уже преобразуетn[z]
в строку131 байт:
Попробуйте онлайн!
Удобочитаемый:
Вместо того, чтобы сравнивать отдельные значения, я проверил, были ли строки из сетки N включены в линии сетки M, и если да, то по каким индексам. Если все строки включены, начиная с одного и того же индекса, то сетка N содержится в сетке M.
источник
PowerShell ,
711028598 байтспасибо @ Джо Кинг; добавлены тестовые случаи.
Попробуйте онлайн!
Меньше гольфа:
источник
Javascript, 150 байт
Попробуйте онлайн
источник