我正在Codeacademy上练习,需要编写以下函数:
定义一个名为anti_vowel的函数,它接受一个字符串text作为输入,并返回删除所有元音字母后的文本。
这是我的解决方案:
它的表现很好,但我想知道这个函数的复杂度。我认为它是 O(nk),其中 n:="文本长度",k:="aeoiuAEIOU 的长度"。我拿出一个文本元素并将其与所有元音字母进行比较,这需要花费 O(k) 时间。但我重复这样做 n 次,所以总共需要 O(nk) 的时间。我的分析正确吗?我该如何改进此函数?它是否可以达到线性时间复杂度?
定义一个名为anti_vowel的函数,它接受一个字符串text作为输入,并返回删除所有元音字母后的文本。
这是我的解决方案:
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) 的时间。我的分析正确吗?我该如何改进此函数?它是否可以达到线性时间复杂度?