Программа курса:
Разбор задачи: Поиск индекса первого вхождения в строку
Предложенный нами код решения:
def str_in_str(haystack, needle):
"""
Возвращает индекс первого вхождения needle в haystack.
Если needle не входит в haystack, возвращает -1.
"""
return haystack.find(needle)Подробный разбор:
- Метод
find():- Метод
find()является встроенным в Python. - Он возвращает индекс первого вхождения строки
needleв строкуhaystack. - Если
needleотсутствует вhaystack, метод возвращает-1.
- Метод
- Простота использования:
- Встроенный метод
find()уже оптимизирован и избавляет нас от необходимости писать собственную логику поиска подстроки.
- Встроенный метод
- Граничные случаи:
Если
needleпустая строка: Методfind()всегда возвращает0, так как пустая строка считается найденной в любой строке с самого начала.haystack = "example" needle = "" print(haystack.find(needle)) # Вывод: 0Если
needleдлиннее, чемhaystack: Возвращается-1, так как подстрока не может быть найдена.haystack = "short" needle = "verylongstring" print(haystack.find(needle)) # Вывод: -1
Примеры из задачи:
- Пример 1:
- Входные данные:
haystack = "hellohello",needle = "lo". - Подстрока
"lo"найдена дважды в строке"hellohello", но методfind()возвращает индекс первого вхождения, который равен3. - Вывод:
3.
- Входные данные:
- Пример 2:
- Входные данные:
haystack = "python",needle = "thon". - Подстрока
"thon"найдена один раз в строке"python", начиная с индекса2. - Вывод:
2.
- Входные данные:
- Пример 3:
- Входные данные:
haystack = "programming",needle = "code". - Подстрока
"code"не найдена в строке"programming", поэтому метод возвращает-1. - Вывод:
-1.
- Входные данные:
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии