擅长:python、mysql、java
<p>如您的示例所示,如果要测试的模式始终是字符串的<em>初始</em>部分,则比较简单:</p>
<pre><code>for must_have in must_have_list:
notInList = True
for example in example_device_list:
if example.startswith(must_have):
notInList = False
break
if notInList: return False
return True
</code></pre>
<p>如果它可以是一个内部字符串,那么就必须使用<code>must_have in example</code>而不是startswith,这增加了算法的复杂性。你知道吗</p>
<p>额外的优化将是删除一个示例设备,发现它没有测试其他必备品。你知道吗</p>
<p>最后,您可以将整个过程翻过来,遍历每个示例设备上的示例列表,删除一个musthave作为本示例的前缀,直到没有musthave为止。根据必有列表和示例列表的大小,将必有列表复制到新的dict(或集合中的集合)以缩短搜索时间是有意义的。你知道吗</p>