Виклик
Напишіть не порожню програму / функцію, p
яка, даючи не порожній рядок вводу s
, виводить позицію першого появи кожного символу s
у вихідному коді p
.
Наприклад, якщо ваша програма
main() { cout << magic << cin }
^0 ^5 ^10 ^15 ^20 ^25
і він отримує вхід abcd{
, вихід повинен бути
[1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based)
Тут, x
представляє будь-якої висновок , який не є допустимим для виведення позиції символу (наприклад, негативне число, 0
якщо ви використовуєте індексацію 1 на основі, NaN
, Inf
, рядок potato
, число більше довжини вашої програми, і т.д.).
Обмеження
Читання вихідного коду заборонено (як, наприклад, у правильній квинті). Використання коментарів дозволено, але враховується ваш результат.
Введення і виведення можуть бути зроблені в прийнятному форматі, але вони повинні бути однозначними (тільки додаткові роздільники, немає rand
потоку , і стверджуючи , що відповідь де - то там), в відповідності (наприклад, x
зверху завжди має бути таким же значення) і людино читабельний ; наприклад, рядок або символьний масив. Можна припустити, що вхід - це рядок (або масив) друкованих символів ASCII; не потрібно обробляти весь набір Unicode.
Користувацька кодова сторінка або недрукований файл ascii у вашому коді?
Якщо у вашій мові використовується користувацька сторінка коду (Jelly, APL тощо), ви повинні це врахувати (тому програма €æÆ
повинна виводити [1, x, 2]
для введення даних €%æ
). Використання лише символів, що не належать до ASCII, для виводу -1
завжди (оскільки вхід є лише ASCII), не є правильним рішенням. Ви можете припустити, що ваша програма спочатку приймає вашу власну кодову сторінку, тобто якщо у вашій програмі є метод перетворення символу A
в ціле число 65
(кодування ASCII), ви можете припустити, що тепер він перетворює 65-й символ у вашій кодовій сторінці 65
.
Натхненний наступним викликом: Позитивна обізнаність
01030708070
,?