Найти - Пользователи
Полная версия: Найти "правильные" слова.
Начало » Python для новичков » Найти "правильные" слова.
1 2 3
py.user.next
kozlo22
Я не могу понять: куда А деется и как должно выглядеть решение.
возьми множество букв всех слов
для каждой буквы определи её уникальность (в одном слове - да, в двух словах - нет)
когда буквы определены, выбери только те слова, в которых нет неуникальных

kozlo22
if {x for x in i}.isdisjoint({x for x in j}):
set(i).isdisjoint(j)
doza_and
py.user.next
выбери только те слова, в которых нет неуникальных
Могу предложить свою интерпретацию постановки задачи. Из заданного конечного набора различных слов выбрать максимальное по размеру подмножество, так чтобы любая пара слов в нем не содержала одинаковых букв. Для данной постановки задачи ваше решение не подходит. Пример: Для вашего подхода будет пустое множество, а для моей постановки подходит любое из приведенных.

Вопрос к ТС:
Вы какую постановку задачи имеете ввиду? (хотя из примера вроде следует что я не прав).

ФП головного мозга: :)
from collections import Counter
wd = ['noise', 'qw', 'job']
ld = Counter("".join(map(lambda x:"".join(list(set(x))),wd)))
bilet = set([i for i in ld if ld[i]>1])
[i for i in wd if bilet.isdisjoint(set(i))]


py.user.next
doza_and
Пример: Для вашего подхода будет пустое множество
пустое множество там будет, если в списке только неправильные слова
то есть слова, в которых есть хотя бы одна буква из хотя бы одного другого слова

doza_and
Из заданного конечного набора различных слов
слова могут быть любые
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB