Буквы-подруги

Напишите функцию, которая будет принимать строку и две буквы. Функция должна проверять, всегда ли после первой переданной буквы идет вторая.

Например:

Хотите скачать книги по Python в 2 клика? Тогда вам в наш телеграм канал PythonBooks 
best_friend("he headed to the store", "h", "e") ➞ True

# Вхождения "h": ["he", "headed", "the"]
# После всех вхождений "h" идет буква "e".
# Возвращается True

Примеры

best_friend("he headed to the store", "h", "e")
➞ True

best_friend("i found an ounce with my hound", "o", "u")
➞ True

best_friend("we found your dynamite", "d", "y")
➞ False

Примечания:

  • Если вторая буква отделена от первой пробелом, то не считается, что они идут одна за другой (см. третий пример)
  • Строка и буквы, которые передаются в функцию, будут в нижнем регистре.

Варианты решения

def best_friend(txt, a, b):
    return txt.count(a) == txt.count(a + b)
import re

def best_friend(txt, a, b):
    return not bool(re.search("{}([^{}]|$)".format(a, b), txt))
def best_friend(txt, a, b):
    try:
        return all(j+txt[i+1]==a+b for i, j in enumerate(txt) if j == a)
    except:
        return False

От редакции Pythonist: с функцией enumerate можно познакомиться в статье «Как работает функция enumerate() в Python?».

Прокрутить вверх