C++ プログラム: 単語の位置をアルファベット順に並べ替えます。

WBOY
リリース: 2023-09-01 23:37:19
転載
1132 人が閲覧しました

C++ プログラム: 単語の位置をアルファベット順に並べ替えます。

この問題では、文字列が入力として与えられ、その文字列に含まれる単語を辞書順に並べ替える必要があります。これを行うには、文字列内の各単語 (スペースで区切られている) に 1 から始まるインデックスを割り当て、ソートされたインデックスとして出力を取得します。

リーリー

入力文字列内の単語は辞書編集順に並べられているため、出力は「1 2」と表示されます。

いくつかの入力/結果シナリオを見てみましょう -

入力文字列内のすべての単語が同じであると仮定して、結果を見てみましょう -

リーリー

取得された結果は単語の最後の位置になります。

ここで、同じ文字で始まる単語を含む入力文字列を考えてみましょう。結果の出力は、開始文字の後続の文字に基づきます。

リーリー

このメソッドの別の一般的な入力シナリオと得られる結果は次のとおりです -

リーリー

- 返される位置は、入力文字列内のこれらの単語の元の位置です。これらの数値は、メソッド内で単語が並べ替えられると変更されません。

###アルゴリズム###

    このメソッドは、ベクトルおよびマップ抽象データ型を使用して実行されます。
  • 自動反復子を使用して、文字列範囲内の入力文字列を走査します。
  • 単語のアルファベット順の交換は、要素をベクトル データ型の後ろにプッシュすることによって行われます。
  • 単語が辞書編集的に並べ替えられると、文字列内のそれらの単語の元の位置が出力として返されます。
  • ###例###
  • ["articles", "point", "world"] という文字列があるとします。文字列の順序は -
です。 リーリー

各文字列をインデックスにマップできます。次に、文字列を並べ替えて、マップのインデックスを出力します。 C でソートされたデータ構造であるマップを使用して、キーと値のペアを保存できます。早速アプローチを実践してみましょう。

リーリー ###出力### リーリー

これで、文字列の並べ替えは -

になります。 リーリー

時間計算量

- O(n * log n)

空間複雑度

- O(n) ###結論は### 私たちはマップを使用して並べ替えとマッピングを行います。ハッシュ マップを使用し、ベクトルまたは配列を並べ替えて、ハッシュ マップ内のインデックスを出力することもできます。時間計算量は O(n*log(n))、空間計算量は O(n) です。

以上がC++ プログラム: 単語の位置をアルファベット順に並べ替えます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート