UniLecs #136. Custom String.IndexOf()
UniLecs![](/file/fa78d82e9ef77767a12f7.png)
Задача: в исходной строке необходимо найти первое и последнее вхождение заданного символа. Если символа в строке нет, выведите -1.
Входные данные: str - входная строка в кодировке Unicode, кол-во символов в строке не больше 10^3. Symbol - символ в кодировке Unicode.
Вывод: первое и последнее вхождение заданного символа в исходной строке.
Пример:
1. str = "AbcAde"; symbol = 'A'; Answer = (0, 3)
2. str = "bbcAde"; symbol = 'A'; Answer = (3, 3)
3. str = "bbcdef"; symbol = 'A'; Answer = (-1, -1)
Идея: посимвольно обрабатываем исходную строку. В отдельной переменной храним кол-во вхождений заданного символа и запоминаем индекс его первого и последнего вхождения.
Реализация: в качестве реализации данного метода используем метод расширения в C# для строкового типа. В качестве выходного типа для метода используем кортеж вида Tuple<int, int>, где первый параметр - индекс первого вхождения, а второй - последнего вхождения заданного символа в исходную строку.
Подробнее про кортежи в C# вы можете почитать тут:
![](/file/75cb38701ef95aa60adff.png)
https://gist.github.com/unilecs/465c9dc04b4f84e335c8f2a548f36ae1
Test: