Как разделить строку на слоги?

Как разделить строку на слоги, с одним но? Например есть строка heuumoogxieietwvoognptaooemkzayeiokxxiusioiau'pclskjafwbudzkxoao ее нужно разделить на ['heuu', 'moo', 'gxieie', 'twvoo', 'gnptaooe', 'mkzayeio', 'kxxiu', 'sioiau', 'pclskja', 'fwbu', 'dzkxoao'].

Т.е. если после согласной идет гласная и потом опять согласная, то это первый слог, если же после гласной идет опять гласная, то нужно ее так же нужно добавить к этому слогу.

Каким методом можно это сделать без импорта других библиотек и чтобы функция работала максимально быстро с длинными строками? И как это сделать?


Ответы (1 шт):

Автор решения: alex9127

Нужно использовать циклы. Вот код:

string = input()
parts = []
latestLetter = ""
nowLetter = ""
vowels = "aeiouyAEIOUY"
for i in range(len(string)):
    nowLetter = string[i]
    if i == 0:
        parts.append(nowLetter)
    elif latestLetter in vowels and nowLetter not in vowels:
        parts.append(nowLetter)
    else:
        parts[len(parts) - 1] += nowLetter
    latestLetter = nowLetter
print(parts)
→ Ссылка