有一个字母池(随机选择),你想用这些字母做一个单词。我发现了一些可以帮助我的代码,但是如果这个词有例如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
这实际上是类似的东西,但我得到了那部分已经算出out.word =输入(“池:”) 池=输入(“字:”) 我在字[len(word)-1 ]: if i in pool: print(“is”) else: print(“is not”) 如果例如word = CETA和pool = CTAAE,它将打印“is”。但如果单词= CETAAAAA,即使游泳池中没有足够的A,它仍然会打印“是”。那是我的问题。谢谢大声笑我不能理解我输入的内容。 – bajotupie
对不起,它是word = input(“word:”)pool = input(“pool:”) – bajotupie
- 1. 检查字符串是否包含字符集中的字符
- 2. 检查字符串是否包含字(不是子字符串!)
- 3. Applescript:检查一个字符串是否包含空字符串?
- 4. 如何检查是否字符串包含字符串数组字符串
- 5. 检查一个字符串是否包含任何一组字符串?
- 6. 检查字符串中是否包含字符和数字
- 7. 检查字符串是否包含除
- 8. 检查是否字符串包含“HTTP://”
- 9. 检查Enum是否包含字符串?
- 10. 检查NSMutableArray是否包含字符串
- 11. 检查行是否包含字符串
- 12. 检查是否WCHAR包含字符串
- 13. 检查一个字符串是否只包含特殊字符
- 14. 检查一个字符串是否包含给定字符
- 15. 检查一个字符串是否包含任何字符
- 16. 检查一个字符串是否包含特定字符
- 17. 检查一对字符串是否包含相同的字符?
- 18. 检查一个字符串是否只包含某些字符
- 19. 检查数组是否包含字符
- 20. 检查一个字符串是否包含任何字符串数组元素
- 21. 检查一个数组是否包含一个字符串
- 22. React-Native:检查字符串是否包含字符串
- 23. 检查字符串是否不包含其他字符串
- 24. 检查字符串是否包含子字符串
- 25. 检查字符串是否包含python中的特殊字符
- 26. 检查字符串是否包含CJK(中文)字符
- 27. 如何检查字符串是否包含C#中的字符?
- 28. c# - 检查字符串是否包含字符和数字
- 29. 检查字符串包含字符串
- 30. 检查是否字符串包含任何字符串数组中的
由于问题是关于FINDSTR你应该问在SuperUser.com其处理非编程相关问题。 –