アナグラムのグループ化
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 54/56。
チャレンジ
中級2つの単語は、ソートした後の文字が一致する場合にアナグラムとなります。例えば、listen と silent はどちらもソートすると eilnst になります。
入力として、カンマで区切られた単語のリスト(小文字、単語内に空白なし)を1行読み込んでください。
単語を、ソートされた文字のシグネチャごとにグループ化します。以下の順序で出力してください:
- 2つ以上の単語を含むグループごとに1行、
<signature>: <word1>,<word2>,...の形式で出力します。グループ内では、単語を入力順に並べてください。グループ自体は、シグネチャのアルファベット順にソートして出力します。 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>' を出力する