最近我接受了采访,我被问到这个问题。
给定一个可以有insert
,delete
和substring
函数的字符串。
substring
函数返回从起始索引到结束索引的字符串,它们作为参数给出。
所有三个选项都是随机排列的,有效的数据结构是什么。
答案 0 :(得分:1)
我假设此处的insert
或delete
操作可以在字符串的中间执行,而不仅仅是结束。否则,像c ++ vector
或python list这样的东西就足够了。
否则,Rope数据结构是一个非常好的候选者。它允许O(logN)中的所有这些操作,我认为这是任何人都希望的最好的。对编辑人员来说,或者在操纵巨大的字符串时,例如基因组数据,这是一个很好的选择。
编辑的另一个相关且更常见的选择是Gap Buffer.