大きな本のように巨大な文字列内の文字列の出現回数を見つける方法:どのように効率的に単語の出現回数内を見つけるだろう私は最近、C#のインタビューセッション中にこの質問をした
大きな本のような巨大なテキスト(聖書、辞書など)。
この本の内容を格納する最も効率的なデータ構造は何でしょうか。私が考えることができるもっとも汚いのは、StringBuilderに格納して部分文字列の数を調べることでしたが、これを行うにはより良い方法が必要です。
そして、合理的なサイズの文字列の場合、部分文字列、正規表現などを使用してこれを行う方法は複数ありますが、最も効率的な方法は何とかしています。
アップデート:私は何を探していますが、このです:
テキストファイルがあると仮定すると、サイズが20メガバイトの、聖書を言うと、私は回数に単語「イエス」を見つけたい、再びすることができます文字列またはStringBuilderに20 MB全体をロードし、部分文字列または正規表現を使用して一致数を検索する以外に、テキスト内に文字列全体が格納される他のデータ構造があります。実際の検索は複数の方法で行うことができます。私が探しているのは、一時的なストレージのための最も効率的な "データ構造"です。
「巨大テキスト内の単語の出現数をただ一度見つける」および「巨大テキスト内の単語の出現数を複数回見つける」という答えは同じではありません。「一度」の部分のヒント:本には多くの行のテキストがあります。 –