Herausforderung
Schreiben Sie ein nicht leeres Programm / eine nicht leere Funktion p
, die bei einer nicht leeren Eingabezeichenfolge s
die Position des ersten Vorkommens jedes Zeichens s
im Quellcode von ausgibt p
.
Zum Beispiel, wenn Ihr Programm ist
main() { cout << magic << cin }
^0 ^5 ^10 ^15 ^20 ^25
und es erhält eine Eingabe abcd{
, die Ausgabe sollte sein
[1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based)
Dabei x
stellt jede Ausgabe , die keine gültige Ausgabe für eine Zeichenposition ist (zB eine negative Zahl, 0
wenn Sie verwenden 1-basierte Indizierung NaN
, Inf
die Zeichenfolge potato
, eine Zahl , die größer ist als die Länge Ihres Programms, etc.).
Beschränkungen
Das Lesen des Quellcodes ist nicht erlaubt (wie in einem richtigen Quine). Die Verwendung von Kommentaren ist zulässig, wird jedoch für Ihre Punktzahl berücksichtigt.
Die Ein- und Ausgabe kann in einem vernünftigen Format erfolgen, muss jedoch eindeutig sein (nur zusätzliche Begrenzer, kein rand
Datenstrom und die Behauptung, dass die Antwort irgendwo darin enthalten ist), konsistent (z. B. x
sollte der Wert von oben immer der gleiche sein) und menschlich. lesbar ; Zum Beispiel eine Zeichenfolge oder ein Zeichenarray. Sie können davon ausgehen, dass die Eingabe eine Zeichenfolge (oder ein Array) druckbarer ASCII-Zeichen ist. Es muss nicht der gesamte Unicode-Satz verarbeitet werden.
Benutzerdefinierte Codepage oder nicht druckbare ASCII-Dateien in Ihrem Code?
Wenn Ihre Sprache eine benutzerdefinierte Codepage (Jelly, APL usw.) verwendet, müssen Sie dies berücksichtigen (ein Programm €æÆ
muss also [1, x, 2]
für eine Eingabe ausgeben €%æ
). Die Verwendung von Nicht-ASCII-Zeichen für die Ausgabe -1
(da die Eingabe nur ASCII-Zeichen enthält) ist keine gültige Lösung. Sie können davon ausgehen, dass Ihr Programm Ihre benutzerdefinierte Codepage nativ akzeptiert. Wenn Ihr Programm über eine Methode zum Konvertieren eines Zeichens A
in eine Ganzzahl 65
(ASCII-Codierung) verfügt, können Sie davon ausgehen, dass es jetzt das 65. Zeichen in Ihrer Codepage in konvertiert 65
.
Inspiriert von der folgenden Herausforderung: Positionsbewusstsein
01030708070
?