Я практикующий в Codeacademy, и я должен сделать следующую функцию:Какова сложность этой функции?
Определим функцию под названием anti_vowel, которая принимает одну строку, текст, в качестве входных данных и возвращает текст со всеми гласными удалены
Эта это мое решение.
def anti_vowel(text):
md = ""
for ch in text:
if ch not in "aeiouAEIOU":
md = md + ch
return md
Это хорошо работает, но мне интересно, в чем сложность функции.
Я думаю, что это O(nk)
где n: = "длина текста" и k: = "длина" aeoiuAEIOU "".
Я беру один элемент текста и сравниваю его со всеми гласными, что занимает время O (k). Но я повторяю это n раз, поэтому я делаю все это в O(nk)
. Правильно ли мой анализ? Как я мог улучшить свою функцию? Может ли он быть линейным?
Обратите внимание, что ваш отступ неправильный, как показано на рисунке. Я предполагаю, что ваш фактический код имеет это правильно. –