広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 64 / 68

アナグラムかどうかを判定しよう

このレッスンでは、Goでアナグラムかどうかを判定する方法を学び、文字列を並び替えて比較する処理の書き方を理解することを目標にします。「Go言語 アナグラム判定 実装」で調べている方向けです。

アナグラムとは、同じ文字を並び替えて作れる別の単語のことです(例: listen と silent)。両方の文字列の文字を並び替えて一致するか比べれば判定できます。

サンプルコードでは、strings.Split(strings.ToLower(a), "")で文字列を小文字にしてから1文字ずつのスライスに分割し、sort.Strings()で並び替えてからstrings.Join()で結合し直して比較しています。

初心者がよくつまずくのが、大文字小文字の違いを考慮していないケースです。サンプルではToLower()で小文字に統一してから比較していますが、これを忘れると同じ単語でも大文字小文字の違いで別物と判定されてしまいます。

文字数が多い文字列では、文字ごとの出現回数を数える方法の方がより高速に判定でき、簡単な暗号解読ゲームの実装にも応用できます。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
単語の並び替え(アナグラム)を判定する、簡単な言葉遊びゲームが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)