Gibt bei einer gegebenen Zeichenfolge zurück, ob die Zeichenfolge eine Teilzeichenfolge des Programmquellcodes ist.
Es gelten die Standardregeln für Quines, dh Sie können Ihren eigenen Quellcode nicht lesen. Die Länge der Eingabe ist garantiert kleiner oder gleich der Länge des Programms. Sie können zwei unterschiedliche Werte zurückgeben, nicht unbedingt Wahrheits- und Falschheitswerte. Sie können auch eine Funktion anstelle eines vollständigen Programms einreichen.
Dies ist ein Code-Golf, also gewinnt der kürzeste Code!
Ein Beispiel
Wenn Ihr Quellcode ist print(input() = False)
, sollte er True für nt(i
aber False für zurückgeben tupn
.
code-golf
decision-problem
quine
Caird Coinheringaahing
quelle
quelle
Antworten:
Python 2 , 41 Bytes
Probieren Sie es online!
quelle
JavaScript , 25 Byte
Probieren Sie es online!
Ich persönlich bin kein Fan davon, aber es ist erlaubt .
Alternative (ungültige?) Lösung, 19 Byte
Dies nimmt Eingaben als regulären Ausdruck an.
Probieren Sie es online!
quelle
(Node.js)
? Funktioniert das nicht auch in Browsern?Java 8,
124112 Bytes (Funktion)Probieren Sie es hier aus.
Hier ist es stattdessen als vollständiges Programm (um einen der Gründe zu sehen, warum Funktionen in PPCG zulässig sind, da einige Sprachen - wie Java - einen sehr ausführlichen obligatorischen Code für vollständige Programme erfordern).
Java 8,
226214 Bytes (volles Programm)Probieren Sie es hier aus.
Erläuterung:
String s
enthält den unformatierten Quellcode.%s
wird verwendet, um diesen String in sich selbst mit dem einzugebens.format(...)
.%c
,%1$c
Und die34
werden verwendet , um die doppelten Anführungszeichen zu formatieren.s.format(s,34,s)
setzt alles zusammen.Und wird dann
.contains(...)
verwendet, um zu überprüfen, ob dieser Quellcode die angegebene Eingabe enthält.quelle
Bash,
43, 28 Bytesversuche es online
quelle
typeset
formatiert es wie dieses AFAICT. Probieren Sie es online!$1
das?Haskell , 92 Bytes
Probieren Sie es online! Offensichtliche Erweiterung der Standard-Quine. Es wäre schön, den Import loszuwerden, aber ich bezweifle,
isInfixOf
dass er in einer kürzeren Anzahl von Bytes berechnet werden kann.quelle
Wolfram Language (Mathematica) , 33 Byte
Probieren Sie es online!
quelle
QBIC , 28 Bytes
Dies gibt 0 aus, wenn die Eingabe keine Teilzeichenfolge der Quelle ist, und X, andernfalls, wenn X der (erste) Index der Teilzeichenfolge ist.
Erläuterung
#
Definiert ein Zeichenfolgenliteral in QBIC und weist es der ersten verfügbaren Zeichenfolgenvariablen zu. Das istB$
in diesem Programm so, weilA$
es bereits von genommen wird;
(lies einen String aus der cmd-Zeile). Dann wird alles bis zum Begrenzer in das Literal eingespeist; Das Trennzeichen ist ein Backtick. Damit ist es auch das einzige ASCII-Zeichen, das nicht in String-Lit enthalten ist. In diesem Fall benötigt QBIC kein Backtick, da das Literal am Ende des Codes durch die automatische Schließfunktion von QBIC beendet wird. Weitere Informationen zu den QBIC-Literalen finden Sie im Showcase-Thread .quelle
A
in diesem Zusammenhang?B
und eine Erklärung wird hinzugefügt.Gelee , 10 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Julia, 72 Bytes
Ich verstehe jetzt, was die Leute meinen, wenn sie sagen, dass Quine-Probleme nur Variationen des klassischen Quine sind.
Erläuterung
quelle
Perl 5, 60 + 2 (-pl) Bytes
versuche es online
quelle
05AB1E , 17 Bytes
Änderung der Standard- Quine
0"D34çý"D34çý
durch HinzufügenIå
.Probieren Sie es online aus.
Erläuterung:
quelle