Получив строку, верните, является ли строка подстрокой исходного кода программы.
Применяются стандартные правила Quine, означающие, что вы не можете читать свой собственный исходный код. Длина входа гарантированно будет меньше или равна длине программы. Вы можете возвращать любые два различных значения, не обязательно истинные и ложные значения. Вы также можете отправить функцию, а не полную программу.
Это код-гольф, поэтому выигрывает самый короткий код!
Пример
Если ваш исходный код есть print(input() = False)
, он должен вернуть True для, nt(i
но False для tupn
.
code-golf
decision-problem
quine
Caird Coneheringaahing
источник
источник
Ответы:
Python 2 , 41 байт
Попробуйте онлайн!
источник
JavaScript , 25 байт
Попробуйте онлайн!
Я лично не фанат этого, но это разрешено .
Альтернативное (недействительное?) Решение, 19 байт
Это принимает входные данные в качестве регулярного выражения.
Попробуйте онлайн!
источник
(Node.js)
? Разве это не работает в браузерах тоже?Java 8,
124112 байт (функция)Попробуй это здесь.
Вместо этого он представлен как полная программа (чтобы увидеть одну из причин, по которой функции разрешены в PPCG, поскольку для некоторых языков, например Java, требуется очень подробный обязательный шаблонный код для полных программ).
Java 8,
226214 байт (полная программа)Попробуй это здесь.
Объяснение:
String s
Содержит исходный код отформатирован.%s
используется для ввода этой строки в себя с помощьюs.format(...)
.%c
,%1$c
И34
используются для форматирования двойных кавычек.s.format(s,34,s)
складывает все это вместе.И затем
.contains(...)
используется, чтобы проверить, содержит ли этот исходный код заданный вход.источник
Баш,
43, 28 байтпопробуйте это онлайн
источник
typeset
форматирует это как AFAICT. Попробуйте онлайн!$1
?Haskell , 92 байта
Попробуйте онлайн! Очевидное расширение стандартной квин. Было бы неплохо избавиться от импорта, но я сомневаюсь, что
isInfixOf
его можно вычислить в меньшем количестве байтов.источник
Wolfram Language (Mathematica) , 33 байта
Попробуйте онлайн!
источник
QBIC , 28 байт
Это печатает 0, если входные данные не являются подстрокой источника, и X иначе, где X - (первый) индекс подстроки.
объяснение
#
определяет строковый литерал в QBIC и присваивает его первой доступной строковой переменной. ЭтоB$
в этой программе, потому чтоA$
уже занято;
(читать строку из строки cmd). Затем все до разделителя подается в буквальное; разделитель является обратным тэгом - что также делает его единственным символом ASCII, не включаемым в список строк. В этом случае QBIC не нуждается в обратном кавычке, потому что литерал завершается в конце кода функцией автоматического закрытия QBIC. Для получения дополнительной информации о литералах QBIC см. Поток Showcase .источник
A
в этом контексте?B
и объяснение добавлено.Желе , 10 байт
Попробуйте онлайн!
Как это устроено
источник
Юлия, 72 байта
Теперь я понимаю, что люди имеют в виду, когда говорят, что проблемы с куиной - это всего лишь разновидности классической муки.
объяснение
источник
Perl 5, 60 + 2 (-pl) байтов
попробуйте это онлайн
источник
05AB1E , 17 байт
Модификация квайна
0"D34çý"D34çý
по умолчанию путем добавленияIå
.Попробуйте онлайн.
Объяснение:
источник