Программа курса:
Разбор задачи: Преобразование строки в язык Goat Latin
Предложенный нами код решения:
def toGoatLatin(sentence):
"""
:type sentence: str
:rtype: str
"""
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
words = sentence.split()
result = []
for index, word in enumerate(words, 1):
if word[0] in vowels:
goat_word = word + "ma"
else:
goat_word = word[1:] + word[0] + "ma"
goat_word += 'a' * index
result.append(goat_word)
return ' '.join(result)Пошаговый разбор кода
Определение гласных букв:
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}Создаётся множество
vowels, включающее как строчные, так и заглавные гласные буквы. Это позволяет легко проверить, начинается ли слово с гласной буквы.Разделение строки на слова:
words = sentence.split()С помощью метода
split()входная строка разбивается на список слов. Пробелы между словами автоматически игнорируются.Создание результирующего списка:
result = []Пустой список
resultбудет использоваться для сохранения слов после преобразования в "Козий Латинский".Перебор слов с их индексами:
for index, word in enumerate(words, 1):Используется цикл
for, где одновременно перебираются слова и их порядковые индексы (начиная с 1). Это упрощает добавление нужного количества буквa.- Преобразование слов:
Если слово начинается с гласной:
if word[0] in vowels: goat_word = word + "ma"В этом случае слово остаётся неизменным, но к нему добавляется строка
"ma".Если слово начинается с согласной:
else: goat_word = word[1:] + word[0] + "ma"Первая буква удаляется и добавляется в конец слова, затем прибавляется строка
"ma".
Добавление букв
aв конец:goat_word += 'a' * indexК преобразованному слову добавляется строка, состоящая из букв
a, количество которых равно порядковому номеру слова.Добавление слова в результат:
result.append(goat_word)Готовое преобразованное слово добавляется в список
result.Объединение слов в строку:
return ' '.join(result)После завершения цикла список
result, содержащий преобразованные слова, объединяется в одну строку с пробелами между словами.
Пример работы функции
Вход:
sentence = "I speak Goat Latin"
Шаги преобразования:
- Слово
"I"начинается с гласной →"I" + "ma" + "a" = "Imaa" - Слово
"speak"начинается с согласной →"peak" + "s" + "ma" + "aa" = "peaksmaaa" - Слово
"Goat"начинается с согласной →"oat" + "G" + "ma" + "aaa" = "oatGmaaaa" - Слово
"Latin"начинается с согласной →"atin" + "L" + "ma" + "aaaa" = "atinLmaaaaa"
Результат:
"Imaa peaksmaaa oatGmaaaa atinLmaaaaa"