我想创建一个应用程序,检查用户输入的单词是否包含来自单独文本文件的单词/单词(例如,输入 = 'teeth',单独文件包含单词 'eet'),无论其序列如何,它都应该返回 True那些角色。
我看了这个线程匹配正则表达式中任意顺序的所有字符这很酷,因为它使用 set() 工作。问题是,set() 不允许您使用重复的字符(例如 eeet、aaat)。
我想知道我应该如何解决这个问题?
我会创建一个collections.Counter
从两个字符串中获取对象,计算字符数,然后减去字典,测试结果字典是否为空(这意味着字符串包含尊重基数的子字符串)
进口收藏品
def contains(substring, string):
c1 = collections.Counter(string)
c2 = collections.Counter(substring)
return not(c2-c1)
print(contains("eeh","teeth"))
print(contains("eeh","teth"))
result:
True
False
请注意,您的示例并不具有代表性
>>> "eet" in "teeth"
True
这就是我改变它的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)