Tantangan
Tulis program / fungsi p
yang tidak kosong yang, diberi string input yang tidak kosong s
, menampilkan posisi kemunculan pertama setiap karakter s
dalam kode sumber p
.
Misalnya, jika program Anda
main() { cout << magic << cin }
^0 ^5 ^10 ^15 ^20 ^25
dan menerima input abcd{
, hasilnya seharusnya
[1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based)
Di sini, x
mewakili setiap output yang tidak output berlaku untuk posisi karakter (misalnya, angka negatif, 0
jika Anda menggunakan pengindeksan 1 berbasis, NaN
, Inf
, string potato
, sejumlah besar dari panjang program anda, dll).
Batasan
Membaca kode sumber tidak diperbolehkan (seperti pada quine yang tepat). Penggunaan komentar diperbolehkan, tetapi dihitung untuk skor Anda.
Input dan output dapat dilakukan dalam format yang masuk akal, tetapi harus tidak ambigu (hanya pembatas tambahan, tidak ada rand
aliran, dan mengklaim bahwa jawabannya ada di suatu tempat di sana), konsisten (misalnya, x
dari atas harus selalu bernilai sama) dan manusia dapat dibaca ; misalnya, string atau array karakter. Anda dapat mengasumsikan bahwa input adalah string (atau larik) karakter ASCII yang dapat dicetak; tidak perlu menangani seluruh set Unicode.
Halaman kode khusus atau ascii yang tidak dapat dicetak dalam kode Anda?
Jika bahasa Anda menggunakan halaman kode khusus (Jelly, APL, dll), Anda harus memperhitungkannya (sehingga program €æÆ
harus menampilkan [1, x, 2]
input €%æ
). Menggunakan hanya karakter non-ASCII untuk menghasilkan -1
selalu (karena input hanya ASCII) bukan solusi yang valid. Anda dapat berasumsi bahwa program Anda menerima codepage kustom Anda, yaitu, jika program Anda memiliki metode konversi karakter A
ke integer 65
(pengkodean ASCII), Anda dapat berasumsi bahwa itu sekarang mengkonversi karakter ke-65 dalam codepage Anda 65
.
Terinspirasi pada tantangan berikut: Kesadaran Posisi
01030708070
,?