data-structures - 存储字符串的最佳数据结构是什么

标签 data-structures

最近我参加了一次面试,被问到了这个问题。

给定一个可以具有 insertdeletesubstring 函数的字符串。

substring 函数返回作为参数给出的从开始索引到结束索引的字符串。

所有三个选项都是随机顺序的,使用什么有效的数据结构。

最佳答案

我假设这里的插入删除操作可以在字符串的中间执行,而不仅仅是结束。否则,像 c++ vector 或 python list 这样的东西就足够了。

否则,Rope数据结构是一个非常好的候选者。它允许所有这些操作在 O(logN) 内完成,我认为这是任何人都希望的最好结果。对于编辑者或操作巨大的字符串(例如基因组数据)来说,这是一个不错的选择。

编辑者的另一个相关且更常见的选择是 Gap Buffer.

关于data-structures - 存储字符串的最佳数据结构是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49126189/

相关文章:

c++ - 如何在 C++ 中检查整数单链表的对称性?

编译错误说 "conflicting types for ‘check’ “

java - 删除链表中等于给定值的所有值

c - 哈希函数确定

.net - 如何使用 Linq 合并列表中的多个数组?

c++ - 当一个已经存在的指针被压入堆栈时,它的拷贝是否被创建?

python - 分离一个单链表,使得所有奇数节点一起出现,偶数节点一起出现

java - 需要有关 java map 和 javabean 的帮助

java - 内存似乎没有按预期工作

c++ - 我的链表反转递归方法代码有什么问题?