Программа курса:

1.1 - Часть 1 1.2 - Часть 2 1.3 - Часть 3 1.4 - Часть 4 1.5 - Часть 5 1.6 - Часть 6 1.7 - Часть 7 1.8 - Часть 8 1.9 - Часть 9 1.10 - Часть 10 1.11 - Часть 11 1.12 - Часть 12
2.1 - Часть 1 2.2 - Часть 2 2.3 - Часть 3 2.4 - Часть 4 2.5 - Часть 5 2.6 - Часть 6
3.1 - Часть 1

Разбор задачи: Поиск индекса первого вхождения в строку

Предложенный нами код решения:

def str_in_str(haystack, needle):
    """
    Возвращает индекс первого вхождения needle в haystack.
    Если needle не входит в haystack, возвращает -1.
    """
    return haystack.find(needle)

Подробный разбор:

  1. Метод find():
    • Метод find() является встроенным в Python.
    • Он возвращает индекс первого вхождения строки needle в строку haystack.
    • Если needle отсутствует в haystack, метод возвращает -1.
  2. Простота использования:
    • Встроенный метод find() уже оптимизирован и избавляет нас от необходимости писать собственную логику поиска подстроки.
  3. Граничные случаи:
    • Если needle пустая строка: Метод find() всегда возвращает 0, так как пустая строка считается найденной в любой строке с самого начала.

      haystack = "example"
      needle = ""
      print(haystack.find(needle))  # Вывод: 0
      
    • Если needle длиннее, чем haystack: Возвращается -1, так как подстрока не может быть найдена.

      haystack = "short"
      needle = "verylongstring"
      print(haystack.find(needle))  # Вывод: -1
      

Примеры из задачи:

  1. Пример 1:
    • Входные данные: haystack = "hellohello", needle = "lo".
    • Подстрока "lo" найдена дважды в строке "hellohello", но метод find() возвращает индекс первого вхождения, который равен 3.
    • Вывод: 3.
  2. Пример 2:
    • Входные данные: haystack = "python", needle = "thon".
    • Подстрока "thon" найдена один раз в строке "python", начиная с индекса 2.
    • Вывод: 2.
  3. Пример 3:
    • Входные данные: haystack = "programming", needle = "code".
    • Подстрока "code" не найдена в строке "programming", поэтому метод возвращает -1.
    • Вывод: -1.

 

Возникли вопросы при прочтении лекции? Задайте вопрос в комментариях

Комментарии