その単語の文字を並べ替えて別の単語を形成できる場合、その単語はアナグラムです。
仕事:
与えられた単語リストからアナグラムのすべてのセットを見つけるための、文字数による最短のソース コード。
スペースと改行は文字としてカウントする必要があります
コード定規を使う
---------10--------20--------30--------40--------50---- ----60--------70--------80--------90--------100-------110- ------120
入力:
各単語が改行で区切られた stdin からの単語のリスト。
例えば
A
A's
AOL
AOL's
Aachen
Aachen's
Aaliyah
Aaliyah's
Aaron
Aaron's
Abbas
Abbasid
Abbasid's
出力:
アナグラムのすべてのセット。各セットは個別の行で区切られています。
実行例:
./anagram < words
marcos caroms macros
lump's plum's
dewar's wader's
postman tampons
dent tend
macho mocha
stoker's stroke's
hops posh shop
chasity scythia
...
私は149文字のperlソリューションを持っており、さらに数人が投稿するとすぐに投稿します:)
楽しむ!
編集:説明
- アナグラムは大文字と小文字を区別しないと仮定します (つまり、大文字と小文字は同等です)。
- 複数のアイテムを含むセットのみを印刷する必要があります
- アナグラムの各セットは一度だけ印刷する必要があります
- アナグラム セット内の各単語は 1 回だけ出現する必要があります
EDIT2: さらなる説明
- 2 つの単語の大文字と小文字のみが異なる場合は、それらを同じ単語に折りたたむ必要があります。折りたたまれた単語に使用する大文字と小文字のスキームを決定するのはユーザー次第です。
- 単語のセットは、各単語が何らかの方法で区切られている限り (コンマ区切りやスペース区切りが有効である限り)、新しい行で終了する必要があります。一部の言語にはクイック配列印刷メソッドが組み込まれていることを理解しています。これにより、スペースで区切られた配列を出力しない場合にそれを利用できるはずです。