Статья Автор: Лебедев Дмитрий

TUZ_4-08 Объединение строк

TUZ_4-08 Объединение строк

TUZ_4-08 Объединение строк
4.8. Объединение строк
Пусть v = {aeiou} – множество гласных, а X и Y – первое и второе слова соответственно.
Если в слове X имеется хотя бы одна гласная из множества v, то считается, что оно имеет как минимум одну группу гласных.
Если в X имеется две гласные, разделенные согласной, то они образуют две группы гласных,
а если гласные следуют друг за другом, то все они относятся к одной группе.
Например, в слове pythonist две группы гласных
(обратите внимание, что y не принадлежит множеству v, поэтому она не учитывается при подсчете групп),
а в слове keep – одна. Задача заключается в создании новой строки на основе двух имеющихся.
Вот правила создания новой строки:
1. Если в X одна группа гласных, то сохраняются только символы перед гласной,
    и эта часть X объединяется с Y так, что первые согласные в Y перед первой гласной удаляются.
    Например, если X = 'go' и Y = 'meaning', то на выходе получится строка 'geaning'.
2. Если в X имеется более одной группы гласных, то сохраняются все символы, предшествующие второй гласной,
    и эта часть X объединяется с Y так, что первые согласные в Y перед первой гласной удаляются.
    Например, если X = 'python' и Y ='visual', то на выходе получится 'pythisual'.
Напишите функцию, которая принимает две строки, X и Y, и возвращает новую строку, составленную из X и Y,
следуя приведенным выше правилам.
В табл. 4.8 показаны ожидаемые результаты для некоторых входных данных.
Таблица 4.8. Некоторые ожидаемые результаты для задачи объединения заданных строк в новую строку
X, Y Ожидаемый результат
go, meaning geaning
python, visual pythisual
elliot, bill ill
ross, jules rules

Алгоритм
Алгоритм принимает две входные строки, first_word и second_word, и объединяет их в одну строку.
Объединение осуществляется путем выбора соответствующих сегментов из каждой входной строки.
На первом шаге алгоритм определяет последовательные гласные в каждой входной строке.
Для этого он просматривает каждый символ в обеих входных строках и проверяет, является ли он гласной.
Если символ является гласной, то алгоритм проверяет, был ли и предыдущий символ гласной.
Если да, то индекс текущей гласной добавляется в подсписок предыдущих гласных.
В противном случае для текущей гласной создается новый подсписок.
После того как для каждой входной строки будут определены группы последовательных гласных,
алгоритм определяет, какие сегменты входных строк следует сохранить в объединенной строке.
Если первая входная строка не содержит последовательных гласных, то сохраняется вся строка.
Если первая входная строка содержит только одну группу последовательных гласных,
то алгоритм сохраняет все ее содержимое до первой гласной.
В противном случае алгоритм сохраняет все в первой входной строке до предпоследней группы гласных.
Сегмент второй входной строки, который необходимо сохранить в объединенной строке,
всегда начинается с первой гласной второй входной строки.
Наконец, алгоритм объединяет выбранные сегменты двух входных строк и возвращает результат.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать