2012-01-21 14 views
-2

ファイル内の単語のoccruenceの数を調べるには。は、私がインタビューでこの質問に出くわした

例1:

text:`this is first string this is second string` 
Keywords:`this, string` 
n= 4 
output= 2 

このストリングであり、」この文字列との間の単語の発生および数が4未満である(最初に)2です。

このは、第2のの文字列が残りの文字列です。 * これと文字列の間の単語数*

4.したがって答えは私が Dictionary<string, List<int>>を使用することを考えている2.

未満である2(で、秒)です。

私の考えは、辞書を使用して特定の単語が繰り返された場所のリストを取得し、両方のリストを繰り返し、条件が満たされた場合にカウントを増やしてからカウントを表示することでした。

私の考え方は正しいですか?ソリューションを改善するための提案をお願いします。

ありがとう、

+2

私にはありません質問を理解できない – BlackBear

+0

最初の例では 'links'という単語は表示されません。出力は「0」でなければなりません。 –

+0

@ downvoter。コメントしてください。 – user1162654

答えて

0

コールが文字列ごとに1回だけ実行されるかどうかによって異なります。それは

int getOccurences(String str, String reference, int min_size) { ... } 

のようなものだならば、あなたは本当に辞書ではなく、さらにISTは必要ありません。文字列を繰り返して単語の出現箇所を見つけ出し、単語間の区切り文字の数を確認することができます。

問題が任意の検索/インデックス作成の問題であれば、IMHOには辞書が必要です。私は、キーが単語であり、その値が出現するインデックスのリストである辞書を探すだろう。あなたは同じテキスト内の単語の異なる対に対して繰り返していることを行う必要がある場合

HTH

+0

入力テキストはテキストファイルで与えられます。 – user1162654

+0

Hmm。上記の解決策をあまりにも変更することはありません。 "str"の代わりにファイル名があります。あなたはそれを一度にすべて読むか、それをバッファするかを選ぶことができます(大きすぎる場合)。 –

0

、その後、インデックスのリストと単語辞書には、良い解決策です。しかし、あなたが1組しか探していなかった場合、それらの2つの単語の索引の2つのリストで十分です。

リストを使用すると、ワード検出操作をカウントロジックから切り離すことができます。しかし、他の回答にいくつかの一般的な面接のアドバイスを追加する:

はインタビューで、インタビュアーは常に探している:(Pはっきり言って、私は質問を理解していない)それ自体は

2

ない答え思考プロセスと、あなたは批判的で論理的な思考家であると考えています。必ずしも優れたコーディングリコールがあり、脳のコードをコンパイルすることはできません。

さらに、インタビューはストレスの多いプロセスです。あなたが仕事をしているときに、スピードを落として大声で話すことによって、より良いコミュニケーターと論理的思考者のように見えるだけでなく(たとえ質問が間違っていても)、あなたは考える時間も与えます。

ペンと紙を使い、思ったとおりに話し、上から始めて作業します。私は、私は、少なくとも要するに

;-)物事をうまくしようとすることができることを実証することによって、ハイテクの質問に対する答えを知らなかった場合でも、仕事を持っている、それだけでダウン技術力

関連する問題