以下面的字符串为例:
“敏捷的棕色狐狸”
现在 quick 中的 q 位于字符串的索引 4 处(从 0 开始),而 fox 中的 f 位于索引 16 处。现在假设用户在该字符串中输入了更多文本。
“速度极快的深褐色狐狸”
现在 q 在索引 9 处, f 在索引 26 处。
无论用户添加多少个字符,在 quick 和 fox 中跟踪原始 q 的索引的最有效方法是什么?
语言对我来说无关紧要,这更像是一个理论问题,所以使用任何你想要的语言,尽量让它保持普遍流行和当前的语言。
我给出的示例字符串很短,但我希望有一种方法可以有效地处理任何大小的字符串。因此,使用偏移量更新数组将适用于短字符串,但会因许多字符而陷入困境。
即使在示例中我正在寻找字符串中唯一字符的索引,我也希望能够在不同位置跟踪相同字符的索引,例如棕色的 o 和狐狸的 o。所以搜索是不可能的。
我希望答案既节省时间又节省内存,但如果我必须选择一个,我更关心性能速度。