例として次の文字列を取り上げます。
「クイックブラウンフォックス」
現在、quickのqは文字列のインデックス4(0から開始)にあり、foxのfはインデックス16にあります。ここで、ユーザーがこの文字列にさらにテキストを入力するとします。
「非常に速いダークブラウンのキツネ」
ここで、qはインデックス9にあり、fはインデックス26にあります。
ユーザーが追加した文字数に関係なく、元のqのインデックスをquickで、fをfoxで追跡する最も効率的な方法は何ですか?
言語は私には関係ありません。これは何よりも理論上の質問なので、一般的に人気のある現在の言語を維持するために、必要な言語を使用してください。
私が提供したサンプル文字列は短いですが、任意のサイズの文字列を効率的に処理できる方法を望んでいます。したがって、オフセットを使用して配列を更新すると、短い文字列で機能しますが、多くの文字に行き詰まります。
この例では、文字列内の一意の文字のインデックスを探していましたが、茶色のoや狐のoなど、さまざまな場所で同じ文字のインデックスを追跡できるようにする必要もあります。したがって、検索は問題外です。
時間とメモリの両方で効率的な答えが得られることを望んでいましたが、1つだけを選択する必要がある場合は、パフォーマンスの速度を重視します。