Menu
Coddy logo textTech

アナグラムのグループ化

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 54/56。

challenge icon

チャレンジ

中級

2つの単語は、ソートした後の文字が一致する場合にアナグラムとなります。例えば、listensilent はどちらもソートすると eilnst になります。

入力として、カンマで区切られた単語のリスト(小文字、単語内に空白なし)を1行読み込んでください。

単語を、ソートされた文字のシグネチャごとにグループ化します。以下の順序で出力してください:

  1. 2つ以上の単語を含むグループごとに1行、<signature>: <word1>,<word2>,... の形式で出力します。グループ内では、単語を入力順に並べてください。グループ自体は、シグネチャのアルファベット順にソートして出力します。
  2. Total groups: <n>(2つ以上の単語を含むグループの数)。

入力が listen,silent,abc,enlist,cab,xyz の場合、出力は以下のようになります:

abc: abc,cab
eilnst: listen,silent,enlist
Total groups: 2

自分で試してみよう

let words = readLine()!.components(separatedBy: ",")

// TODO: [シグネチャ: [単語]] を構築し、サイズが2以上のソートされたグループを出力する
// その後、'Total groups: <n>' を出力する

ロジックとフローのすべてのレッスン