文中の単語を反転

各単語の文字を保持しながら、文中の単語の順序を反転する方法を学びます。実用的な応用を持つ一般的なコーディング面接の質問です。

Fundamentals

詳細な説明

単語順序の反転

文中の単語を反転するとは、最後の単語が最初に来るように単語を並べ替えることで、各単語内の文字は変更しません。

入力:  "The quick brown fox jumps"
出力: "jumps fox brown quick The"

各単語は元のスペルを保持し、順序のみが変わります。

アルゴリズム

split-reverse-joinアプローチ:

const result = sentence.split(/\s+/).reverse().join(" ");

インプレースアプローチ(追加空間O(1)):

  1. 文字列全体を文字単位で反転
  2. 結果内の各個別単語を反転
ステップ0: "The quick brown fox"
ステップ1: "xof nworb kciuq ehT"(全文字を反転)
ステップ2: "fox brown quick The"(各単語を反転)

この2パステクニックは、新しい配列を割り当てずに単語反転を実現するため、面接で好まれる解法です。

考慮すべきエッジケース

  • 複数スペース: 連続するスペースを1つに縮約するか、保持するか?
  • 先頭/末尾のスペース: トリムするか保持するか?
  • 単一単語: 同じ単語を変更せずに返す
  • 空文字列: 空文字列を返す
  • 改行: 各行を独立して処理すべきか?

ユースケース

単語順序の反転は、Google、Amazon、MetaなどのコーディングFIG接で頻繁に出題される質問です。自然言語処理、検索クエリの再構成、右から左へ書く言語への適応のためのテキストフォーマットにも実用的な応用があります。

試してみる — Reverse Text

フルツールを開く