input: ['abc', 'cab', 'cafe', 'face', 'goo']
output: [['abc', 'cab'], ['cafe', 'face'], ['goo']]
問題は単純です: anagramsでグループ化します。順番は関係ありません。
もちろん、これは C++ (私の母国語) で行うことができます。しかし、これはPythonによって1 行で実行できるのではないかと思います。EDITED:それが不可能な場合は、おそらく2行または3行です。私はPythonの初心者です。
2 つの文字列がアナグラムかどうかを確認するために、並べ替えを使用しました。
>>> input = ['abc', 'cab', 'cafe', 'face', 'goo']
>>> input2 = [''.join(sorted(x)) for x in input]
>>> input2
['abc', 'abc', 'acef', 'acef', 'goo']
組み合わせなどで可能かと思いますmap
。しかし、dict
ハッシュテーブルとして a を使用する必要があります。これが1行で実行できるかどうかはまだわかりません。どんなヒントでも大歓迎です!