Второе вхождение
Сначала выясняем, есть ли первая f, затем ищем следующую.
Как к ней подойти
Потренируйтесь находить нужные символы и фрагменты строки, не теряя границы срезов.
У строки есть индексы, срезы и методы поиска. Индексация начинается с нуля, правая граница среза не включается. Перед сборкой ответа проверьте, что произойдёт, если искомый фрагмент отсутствует.
Начальная позиция второго поиска исключает первое вхождение. Отсутствие второго автоматически даёт −1.
Проверьте перед запуском
- Индексы начинаются с нуля.
- Второй поиск нужно начинать после первого вхождения.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Два поиска find
Начальная позиция второго поиска исключает первое вхождение. Отсутствие второго автоматически даёт −1.
s = input()
first = s.find('f')
if first == -1:
print(-2)
else:
print(s.find('f', first + 1))
Время: O(n). Память: O(n) для строки; O(1) дополнительной памяти.
Другой способ: Счётчик при проходе
До первой f ответ −2, после первой −1, после второй — её индекс.
s = input()
count = 0
answer = -2
for i, char in enumerate(s):
if char == 'f':
count += 1
answer = -1
if count == 2:
answer = i
break
print(answer)
Время: O(n). Память: O(n) для строки; O(1) дополнительной памяти.