我在Codeacademy练习,我必须做以下功能:
定义一个名为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)时间.但我重复了那么多次,所以我全力以赴O(nk)
.我的分析是否正确?我怎么能改进我的功能?它可能是线性的吗?
Big-O复杂性并不像那样.k
(元音的长度)是一个常数,它不会根据输入的长度而改变.因此,我们在计算复杂性时将其折扣.
你的函数只是O(n),即线性复杂度.