0

C++ での文字列操作に問題があります。

ルール: 文章や段落で同じ「単語」が繰り返される場合は、整数にする必要があります。

例:

  • 入力:we prefer questions that can be answered, not just we discussed that.
  • 出力:1 prefer questions 2 can be answered, not just 1 discussed 2.
1 we
2 that
4

3 に答える 3

4

この種の問題は、連想配列を使用して既に見た単語を追跡すると、通常ははるかに簡単に解決できます。STL マップを使用して、既に見た単語を保存してみてください。ロジックを正しく設定するには多少の作業が必要ですが、マップは間違いなくあなたがやろうとしていることを助けてくれます。

于 2009-06-04T03:07:44.100 に答える
4

これは私がとるアプローチです(宿題なのでアルゴリズムのみ)。

  1. 単語をカウントにマッピングするデータ構造を作成します。
  2. 一度に 1 語ずつテキストを処理します。
    • 新しい単語の場合は、それをデータ構造に追加し、そのカウントを 1 に設定します。
    • それが既存のものである場合は、カウントを増やすだけです。
  3. すべての単語が処理されたら、データ構造内の各単語を調べて、カウントが 1 より大きい単語に一意の整数を与えます。
  4. 最初は空の新しいテキスト文字列を作成し、テキストを単語ごとに再度処理します。
    • 単語のカウントが 1 の場合、その単語を新しい文字列に追加します。
    • カウントが 1 より大きい場合は、一意の整数を追加します。
于 2009-06-04T03:14:00.717 に答える