使用不可变字符串进行高效的字符串构建



在C++中,有vector::reserve()可以在构建字符串时提前有效地分配内存。即使没有它,我们也可以在 O(n) 摊销中构建一个字符串。

我们如何有效地在字符串不可变的语言中构建字符串,例如 python?一次添加一个原子的朴素方法,在 O(n) C++中工作正常,似乎是 O(n^2),为 gc 生成 O(n^2) 垃圾。

在 Python 中处理这个问题的常用方法是生成一个字符串列表(或使用生成器),并调用 join 来组合它们。

final_string = ''.join(substring for substring in my_generator())

最新更新