Dada uma string, retorne se a string é uma substring do código fonte do programa.
Aplicam-se regras padrão de quine, o que significa que você não pode ler seu próprio código-fonte. A duração da entrada é garantida como menor ou igual à duração do programa. Você pode retornar dois valores distintos, não necessariamente valores de verdade e falsey. Você também pode enviar uma função, em vez de um programa completo.
Este é um código de golfe, então o código mais curto vence!
Um exemplo
Se o seu código-fonte for print(input() = False)
, ele deve retornar True para nt(i
mas False para tupn
.
code-golf
decision-problem
quine
caird coinheringaahing
fonte
fonte
Respostas:
Python 2 , 41 bytes
Experimente online!
fonte
JavaScript , 25 bytes
Experimente online!
Pessoalmente, não sou fã disso, mas é permitido .
Solução alternativa (inválida?), 19 bytes
Isso leva a entrada como um regex.
Experimente online!
fonte
(Node.js)
? Também não funciona em navegadores?Java 8,
124112 bytes (função)Experimente aqui.
Aqui está o programa completo (para ver uma das razões pelas quais as funções são permitidas no PPCG, porque algumas linguagens - como Java - requerem código padrão detalhado muito detalhado para programas completos).
Java 8,
226214 bytes (programa completo)Experimente aqui.
Explicação:
String s
contém o código fonte não formatado.%s
é usado para inserir esta String em si mesma com os.format(...)
.%c
,%1$c
E34
são usados para formatar as aspas.s.format(s,34,s)
coloca tudo junto.E então
.contains(...)
é usado para verificar se esse código fonte contém a entrada fornecida.fonte
Bash,
43, 28 bytesexperimente online
fonte
typeset
formata-o como este AFAICT. Experimente online!$1
faz?Haskell , 92 bytes
Experimente online! Extensão óbvia do padrão quine. Livrar-se da importação seria bom, mas duvido que
isInfixOf
possa ser calculado em uma quantidade menor de bytes.fonte
Wolfram Language (Mathematica) , 33 bytes
Experimente online!
fonte
QBIC , 28 bytes
Isso imprime 0 se a entrada não for uma substring da fonte e X, caso contrário, onde X é o (primeiro) índice da substring.
Explicação
#
define um literal de sequência em QBIC e o atribui à primeira variável de sequência disponível. Isso estáB$
neste programa, porqueA$
já foi usado por;
(leia uma string da linha cmd). Então, tudo até o delimitador é alimentado no literal; o delimitador é um backtick - o que também o torna o único caractere ASCII não incluído nos lits de string. Nesse caso, o QBIC não precisa de um backtick, porque o literal é finalizado no final do código pelo recurso de fechamento automático do QBIC. Para obter mais informações sobre literais do QBIC, consulte o tópico Showcase .fonte
A
neste contexto?B
e uma explicação é adicionada.Gelatina , 10 bytes
Experimente online!
Como funciona
fonte
Julia, 72 bytes
Agora entendo o que as pessoas querem dizer quando dizem que os problemas do quine são apenas variações do quine clássico.
Explicação
fonte
Perl 5, 60 + 2 (-pl) bytes
experimente online
fonte
05AB1E , 17 bytes
Modificação do quine padrão
0"D34çý"D34çý
adicionandoIå
.Experimente online.
Explicação:
fonte