首页 > 解决方案 > 算法加速字符串切片操作 - Python

问题描述

假设我有一个非常大的文本文档。我需要模仿文本编辑器的复制和粘贴操作。

更具体地说,我想编写两个函数 copy(i,j) 和 paste(i),其中 i 和 j 表示文本文档中字符的索引。

现在,我知道正常的字符串切片每次都会创建一个新的字符串对象并执行类似的操作

copy_text = str[i:j]
self.str = str[:i] + copy_text + str[j:]

考虑到我们在文本编辑器中执行复制粘贴功能的次数,最终会产生大量新字符串对象的开销。

我该怎么做?甚至可能吗?

我研究了memoryview,他们在其中使用了一个缓冲区,由于他们创建了原始对象的零拷贝视图,因此最终可能会花费更少的时间来执行。但是,我想用算法来做,而不是玩弄字符串的存储方式。我正在考虑使用数组的行来存储字符串并使用 B+ 树来存储指向该字符串的指针。我无法真正实现任何东西。

期待您的评论。谢谢。

标签: pythonalgorithmdata-structures

解决方案


推荐阅读