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