Die Herausforderung besteht darin , eine Reihe von Zeichen zu finden , die nicht kann in erscheint jedes rechtliches Programm in Ihrer Programmiersprache der Wahl. Dazu gehören Kommentare, Zeichenfolgen oder andere "nicht ausführbare" Teile.
Herausforderung
- Ihr Programm ist möglicherweise spezifisch für eine bestimmte Version oder Implementierung der Compiler- / Interpreter- / Laufzeitumgebung Ihrer Sprache. Wenn ja, geben Sie bitte die Einzelheiten an.
- Es sind nur Standardoptionen für Compiler / Interpreter / Laufzeit zulässig. Sie können Ihrem Compiler kein seltsames Flag übergeben, um ein bestimmtes Ergebnis zu erhalten (z. B. das Übergeben eines Flags, um Warnungen in Fehler umzuwandeln).
- Wenn Ihre Programmiersprache eine bestimmte Codierung erfordert (z. B. UTF-8), muss Ihre Zeichenfolge auch korrekt codiert sein (dh Zeichenfolgen, die nur aufgrund von Zeichendekodierungsfehlern fehlschlagen, sind nicht zulässig).
- Jeder einzelne Charakter in Ihrem Beitrag muss in einem juristischen Programm zulässig sein. Das heißt, Sie können nicht einfach ein Zeichen verwenden, das immer abgelehnt wird.
- Der Compiler / Interpreter / Laufzeit muss einen Fehler, wenn sie angegeben sind alle Quellcode, der die Zeichenfolge als Teil enthält. Der Fehler muss nicht programmübergreifend gleich sein - eine Einbettung Ihres Strings kann einen Syntaxfehler verursachen, während eine andere einen Laufzeitfehler verursachen kann.
Wertung
- Kürzeste unzulässige Zeichenfolge für jede Sprache gewinnt.
- Sie sollten erklären, warum Ihre Zeichenfolge illegal ist (warum sie in einem legalen Programm nirgendwo auftauchen kann).
- Diskutiere falsche Lösungen in den Kommentaren. Insbesondere sollten Sie einen Link zu TIO oder einem vergleichbaren Programm bereitstellen, der ein legales Programm (dh eines, das keine Fehler produziert) demonstriert, das die vorgeschlagene Teilzeichenfolge enthält.
- In einigen Sprachen (z. B. Bash, Batch, Perl) können beliebige Binärdaten an ein Programm angehängt werden, ohne die Gültigkeit zu beeinträchtigen (z. B. Verwendung
__DATA__
in Perl). Für solche Sprachen können Sie eine Lösung einreichen, die nur in einem solchen abschließenden Abschnitt angezeigt werden kann . Stellen Sie sicher, dass Sie dies in Ihrer Antwort vermerken. (Die Definition dieses "abschließenden Abschnitts" ist sprachabhängig, bedeutet jedoch im Allgemeinen jeden Text, nachdem der Parser das Skript vollständig nicht mehr gelesen hat.)
Beispiel
In Python könnte ich einreichen
x
"""
'''
Dies kann jedoch in das größere Programm eingebettet werden
"""
x
"""
'''
y
'''
also ist es nicht zulässig.