Sfida
Scrivi un programma / funzione non vuoto p
che, data una stringa di input non vuota s
, genera la posizione della prima occorrenza di ciascun carattere s
nel codice sorgente di p
.
Ad esempio, se il tuo programma lo è
main() { cout << magic << cin }
^0 ^5 ^10 ^15 ^20 ^25
e riceve un input abcd{
, l'output dovrebbe essere
[1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based)
Qui, x
rappresenta qualsiasi output che non è un'uscita valida per una posizione di carattere (ad esempio, un numero negativo, 0
se si utilizza l'indicizzazione in base 1, NaN
, Inf
, la stringa potato
, un numero maggiore della lunghezza del tuo programma, ecc).
restrizioni
La lettura del codice sorgente non è consentita (come in un vero quine). L'uso dei commenti è consentito, ma conta per il tuo punteggio.
L'input e l'output possono essere fatti in un formato ragionevole, ma devono essere inequivocabili (solo delimitatori aggiuntivi, nessun rand
flusso e affermando che la risposta è da qualche parte lì dentro), coerenti (ad esempio, il x
precedente dovrebbe sempre avere lo stesso valore) e umano- leggibile ; ad esempio, una stringa o una matrice di caratteri. Si può presumere che l'input sia una stringa (o matrice) di caratteri ASCII stampabili; non è necessario gestire l'intero set Unicode.
Codepage personalizzata o ascii non stampabili nel tuo codice?
Se la tua lingua utilizza una tabella codici personalizzata (Jelly, APL, ecc.), Devi tenerne conto (quindi un programma €æÆ
deve generare [1, x, 2]
un input €%æ
). L'uso di soli caratteri non ASCII per l'output -1
sempre (poiché l'input è solo ASCII) non è una soluzione valida. Puoi presumere che il tuo programma accetti nativamente la tua codepage personalizzata, cioè se il tuo programma ha un metodo per convertire un carattere A
in un intero 65
(codifica ASCII), puoi supporre che ora converta il 65 ° carattere nella tua codepage 65
.
Ispirato alla seguente sfida: consapevolezza della posizione
01030708070
?