Wyzwanie
Napisz niepusty program / funkcję, pktóra, biorąc pod uwagę niepusty ciąg wejściowy s, wyświetla pozycję pierwszego wystąpienia każdego znaku sw kodzie źródłowym p.
Na przykład, jeśli twój program to
main() { cout << magic << cin }
^0 ^5 ^10 ^15 ^20 ^25
i otrzymuje wejście abcd{, wyjście powinno być
[1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based)
Tutaj xoznacza dowolną moc, która nie jest ważne wyjście na pozycji znaku (np liczba ujemna, 0jeśli używasz indeksowanie 1 oparte NaN, Inf, łańcuch potato, większa liczba niż długość Twojego programu, itp).
Ograniczenia
Czytanie kodu źródłowego jest niedozwolone (jak w prawidłowym quine). Używanie komentarzy jest dozwolone, ale wlicza się do twojego wyniku.
Dane wejściowe i wyjściowe mogą być wykonane w rozsądnym formacie, ale muszą być jednoznaczne (tylko dodatkowe ograniczniki, brak randstrumienia i twierdzenie, że gdzieś tam jest odpowiedź), spójne (np. xPowyższe powinno zawsze mieć tę samą wartość) i ludzkie czytelny ; na przykład ciąg znaków lub tablica znaków. Możesz założyć, że dane wejściowe to ciąg (lub tablica) drukowalnych znaków ASCII; nie trzeba obsługiwać całego zestawu Unicode.
Niestandardowa strona kodowa lub ascii do wydruku w kodzie?
Jeśli twój język używa niestandardowej strony kodowej (Jelly, APL itp.), Musisz to wziąć pod uwagę (więc program €æÆmusi wyświetlać [1, x, 2]dane wejściowe €%æ). Używanie tylko znaków spoza ASCII do -1zawsze wyjściowego (ponieważ dane wejściowe są tylko ASCII) nie jest prawidłowym rozwiązaniem. Możesz założyć, że twój program natywnie akceptuje twoją niestandardową stronę kodową, tj. Jeśli twój program ma metodę konwersji znaku Ana liczbę całkowitą 65(kodowanie ASCII), możesz założyć, że teraz konwertuje on 65 znak na twojej stronie kodowej 65.
Inspirowany następującym wyzwaniem: świadomość pozycyjna
01030708070?