文中の単語を反転
各単語の文字を保持しながら、文中の単語の順序を反転する方法を学びます。実用的な応用を持つ一般的なコーディング面接の質問です。
Fundamentals
詳細な説明
単語順序の反転
文中の単語を反転するとは、最後の単語が最初に来るように単語を並べ替えることで、各単語内の文字は変更しません。
例
入力: "The quick brown fox jumps"
出力: "jumps fox brown quick The"
各単語は元のスペルを保持し、順序のみが変わります。
アルゴリズム
split-reverse-joinアプローチ:
const result = sentence.split(/\s+/).reverse().join(" ");
インプレースアプローチ(追加空間O(1)):
- 文字列全体を文字単位で反転
- 結果内の各個別単語を反転
ステップ0: "The quick brown fox"
ステップ1: "xof nworb kciuq ehT"(全文字を反転)
ステップ2: "fox brown quick The"(各単語を反転)
この2パステクニックは、新しい配列を割り当てずに単語反転を実現するため、面接で好まれる解法です。
考慮すべきエッジケース
- 複数スペース: 連続するスペースを1つに縮約するか、保持するか?
- 先頭/末尾のスペース: トリムするか保持するか?
- 単一単語: 同じ単語を変更せずに返す
- 空文字列: 空文字列を返す
- 改行: 各行を独立して処理すべきか?
ユースケース
単語順序の反転は、Google、Amazon、MetaなどのコーディングFIG接で頻繁に出題される質問です。自然言語処理、検索クエリの再構成、右から左へ書く言語への適応のためのテキストフォーマットにも実用的な応用があります。