0

我试图在 python 中找到 str.replace() 内置函数的时间复杂度(Big O)

我知道最坏的情况是 O(n m)* 来找到一个子字符串,但是如果我们在一行中使用三次替换怎么办

newstr = str1.replace(char1,'*').replace(char2,char1).replace("*",char2)

我正在尝试在某个字符串中交换 char1 和 char2,备用代码使用的是 O(n) 时间复杂度的 for 循环。但是对于上面的代码,大O会变成3倍,还是变成n^3?那有意义吗?

4

1 回答 1

1

但是对于上面的代码,大O会变成3倍,还是变成n^3?

使用 Big-O 表示法来量化运行时间意味着根据定义忽略常数因素。也就是说,三重替换版本可能具有比进行交换的单个手动编码循环更高的常数因子,但它们仍然是 O(n)。

交换的三重替换版本不会是 O(n^3)。

于 2021-12-07T15:51:50.967 回答