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

时间:2018-03-06 08:17:35

标签: data-structures

最近我接受了采访,我被问到这个问题。

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

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

所有三个选项都是随机排列的,有效的数据结构是什么。

1 个答案:

答案 0 :(得分:1)

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

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

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