-1

変数の単語に単語のリストがあり、変数の文字に文字のリストがある場合、文字の文字から構成できる2つの単語のすべての連結を見つけるにはどうすればよいですか. 文字の中の文字はそれぞれ 1 回だけ使用する必要があります。ただし、同じ文字を複数回リストすることはできます。レター内のすべてのレターを使用する必要があります。これをPythonでやりたいです。

文字から単一の単語を見つけるためのコードがありますが、これを変更して、代わりに連結された 2 つの単語を見つけるにはどうすればよいですか。

letters = ['A', 'E', 'H', 'R', 'T']
words = ['DUMMY', 'EARTH']

[w for w in words if sorted(w) == letters]

与えられた

letters = ['A', 'D', 'E', 'H', 'M', 'M', 'R', 'T', 'U', 'Y']

見つけたい

'DUMMYEARTH'
4

2 に答える 2

1

これがペアにのみ必要な場合:

from itertools import combinations

words = ['DUMMY', 'EARTH']
letters = ['A', 'D', 'E', 'H', 'M', 'M', 'R', 'T', 'U', 'Y']

[w for w in (''.join(c) for c in combinations(words,2)) 
                               if sorted(w) == letters]
# ['DUMMYEARTH']

これはすべての組み合わせで機能します。

[w for w in (''.join(c) for i in xrange(len(words)+1) 
                      for c in combinations(words,i)) 
                              if sorted(w) == letters]
# ['DUMMYEARTH']
于 2013-02-02T09:13:23.587 に答える
-1

+ 演算子で単語を連結してから、チェックを行います。

于 2013-02-02T08:56:52.353 に答える