Вступление
Некоторое время назад потерянный пользователь SO разместил здесь вопрос, и теперь он был удален, но я думаю, что это будет хорошим вызовом, так что вот так ...
Вызов
Напишите полную программу или функцию, которая принимает две строки и проверяет, является ли любая перестановка первой строки подстрокой второй строки.
вход
Две строки, строка и подстрока для проверки (вы можете выбрать порядок).
Выход:
Истинное значение, если строка содержит любую перестановку подстроки.
Значение Falsey, если строка не содержит перестановок подстроки.
Тест чувствителен к регистру.
Примеры / Тестовые случаи
sub-string string
input d!rl Hello World!
output truthy
input Pog Programming Puzzles & Code Golf
output falsey
input ghjuyt asdfhytgju1234
output truthy
Ответы:
Брахилог , 2 байта
Попробуйте онлайн!
объяснение
источник
JavaScript (ES6), 77 байт
Возвращает 1 или 0.
отрывок
источник
Python 2,
6766 байтПринимает ввод как две строки, сначала подстрока.
источник
sorted
.05AB1E , 3 байта
Попробуйте онлайн!
-1 байт благодаря Emigna .
Объяснение:
источник
.
Java 8,
266244 байтаОбъяснение:
Попробуй это здесь.
источник
Action<params>
вместоFunc<params, returnVal>
. Я предполагаю, что это будет нечто подобное.Consumer
иaccept(...)
вместоFunction
иapply(...)
когда я хочу иметь лямбда с параметром и без возвращаемого типа. Я в настоящее время обучения Java 8. :) Но так как я должен изменитьvoid p(String p,String q)
,p("",p);
иp(p+q.ch...,q.sub...)
кp->q->
,p.apply("").accept(p);
иp.apply(p+q.ch...).accept(q.sub...)
он короче использовать комбинацию лямбды для основного метода, и только Java 7void p(String p,String q)
метода рекурсивной-метода.Function<String, Predicate<String>>
в моем.Желе , 5 байт
Попробуйте онлайн!
-1 Спасибо Эмигне за то, что она подтолкнула меня к игре в гольф.
Объяснение:
источник
Japt
107 байтПопробуйте онлайн
объяснение
источник
Python , 60 байт
Измененная форма ответа TFeld - иди дай кредит!
Рекурсивная функция, возвращающая логическое
True
(истина) или пустую строку (ложь).Попробуйте онлайн!
сортирует подстроку
u
и одинаковую длину переднего края строкиt
(с использованием срезаt[:len(u)]
), если они совпадают, а затемTrue
возвращается, в противном случае, еслиt
все еще верно (не пусто), рекурсы с удаленнымt
(с использованием среза,t[1:]
) , Если значениеt
становится пустым, тоand
оно не выполняется иt
возвращается пустое значение .источник
lambda u,t,s=sorted:
дляPyth,
98 байт-1 байт благодаря @Erik_the_Outgolfer
Принимает две строки в кавычках, вторая из которых является подстрокой.
Попытайся!
источник
s
вместо}1
.Mathematica,
5550 байт-5 байт от пользователя 202729
Возвращает
False
если перестановка первого ввода находится во второй строке. Возвращает,True
если перестановка первого ввода отсутствует во второй строке.Объяснение:
источник
True
/False
.Characters
.CJam ,
1312 байтПопробуйте онлайн!
Я чувствую, что CJam действительно ограничен по сравнению с другими языками игры в гольф, но, может быть, я просто плохой ...
Я думаю о переезде в другое. 05AB1E кажется забавным.
Исправлена небольшая ошибка благодаря Erik the Outgolfer
Cut один укус, потому что ненулевые числа правдивы
Объяснение:
источник
a
иabc
?W>
.le!lf{\#)}:+
считаться правильным решением? Он должен выводить,0
если строка не найдена, и некоторое положительное число в противном случае. Является ли ненулевое число допустимымtruthy
?)
вместоW>
, согласно разъяснениям ОП.Java 9 JShell , 160 байт
(новые строки вставлены для удобства чтения)
Попробуйте онлайн!
Примечание: JShell по умолчанию включает в себя несколько импортов. В качестве решения Java 8 или Java 9 необходимо импортировать:
Для дополнительных 45 байтов или всего 205 байтов. Приведенная выше ссылка на TIO относится к программе на Java 9, поскольку TIO в настоящее время не имеет JShell (и мне не ясно, как JShell будет работать на TIO).
источник
C #, 320 байт
Я уверен, что вычисление перестановок может быть намного короче, но я не вижу, как в данный момент.
Отформатированная / Полная версия:
источник
Рубин , 69 байт
Попробуйте онлайн!
источник
Perl 6 , 48 байт
Возвращает ор-соединение присутствия каждой перестановки в качестве подстроки. Например, с аргументами
"Hello World!"
и"d!l"
возвращает:... который "падает"
True
в логическом контексте. То есть соединения - это истинные ценности.источник
PHP> = 7.1, 91 байт
Testcases
источник
~$p
вместоa&$p
.,
Haskell, 54 байта
Использование возможностей Data.List для обоих,
isInfixOf
а такжеpermutations
.источник
R , 103 байта
Попробуйте онлайн!
Возвращается
TRUE
за правду иNA
за фалси.источник
APL (Dyalog) , 18 байт
Попробуйте онлайн!
источник
MATL, 10 байт
Попробуйте это на MATL Online
источник