Существует пул писем (выбран случайным образом), и вы хотите сделать слово с этими буквами. Я нашел несколько кодов, которые могут помочь мне в этом, но если слово имеет, например, 2 L и пул только 1, я бы хотел, чтобы программа узнала, когда это произойдет.Проверьте, содержится ли набор символов в строке?
ответ
Если я правильно понимаю это, вам также понадобится список всех допустимых слов в зависимости от того, какой язык вы используете.
Предполагая, что у вас есть это, тогда одной стратегией для решения этой проблемы может быть создание ключа для каждого слова в словаре, которое является отсортированным списком букв в этом слове. Затем вы можете группировать все слова в словаре этими клавишами.
Тогда задача выяснить, может ли быть построено допустимое слово из определенного списка случайных символов, было бы легко и быстро.
Вот простая реализация того, что я предлагаю:
list_of_all_valid_words = ['this', 'pot', 'is', 'not', 'on', 'top']
def make_key(word):
return "".join(sorted(word))
lookup_dictionary = {}
for word in list_of_all_valid_words:
key = make_key(word)
lookup_dictionary[key] = lookup_dictionary.get(key, set()).union(set([word]))
def words_from_chars(s):
return list(lookup_dictionary.get(make_key(s), set()))
print words_from_chars('xyz')
print words_from_chars('htsi')
print words_from_chars('otp')
Выход:
[]
['this']
['pot', 'top']
На самом деле, перечитывая свой вопрос, возможно, [это] (http://stackoverflow.com/questions/8286554/find-anagrams-for-a-list-of-words) - это то, о чем вы просили. – Bill
На самом деле это что-то вроде этого, но я понял, что эта часть уже вычислена .word = input ("pool:") pool = input ("word:") для i в слове [len (word) -1 ]: Если я в бассейне: print ("is") else: print ("is not") Если, например, слово = CETA и pool = CTAAE, оно будет печатать "is". Но если слово = CETAAAAA, оно все равно будет напечатано «is», хотя в пуле достаточно A. Это моя проблема. спасибо, я не могу понять, что я набрал. – bajotupie
Извините, это слово = input ("word:") pool = input ("pool:") – bajotupie
Поскольку речь идет о Findstr вы, вероятно, следует спросить в на SuperUser.com которые имеют дело с не-программирование связанные вопросы. –