大きなアレイの中にある複数のアナグラムを検出するのに役立つ人がいるかどうかは疑問でした。私はのようなものを使用して、基本的なチェックを行うことができることを知って複数のアナグラムの検出
:
x = "Red"
y = "der"
x.downcase.split("").sort == y.downcase.split("").sort
はしかし、私はそれよりも少し複雑な何か助けが必要。私が現在持っているのは、1万語以上の大規模な配列です。アレイを繰り返し処理し、すべてのアナグラムを別のリストに分けて返す最もクリーンな方法を探しています。
["Red", "Blue", "uLeB", "der"]
それは返す必要があります:
例えば、の配列があるふりをしましょう
[["Red", "der"], ["Blue", "uLeB"]]
彼らが配列で返されている必要はありません - 私はただの方法が必要ですそれらを分離する。
ありがとうございました!
を使用して、別のアプローチを示唆しているステファンありがとう - これは完璧でした。 :) – IainK
私は2017年にドイツ語を話している誰かから 'chars'を読むことを期待していませんでした:' puts ["äo"、 "öa"] group_by {| w | w.chars.sort} '#⇒' {["a"、 "o"、 "̈"] => ["äo"、 "öa"]} ' – mudasobwa
@mudasobwa 'chars'は大丈夫です、あなたのNFD文字は全てをつまんでいます;-)クイックフィックス:' w.unicode_normalize.chars.sort' – Stefan