擅长:python、mysql、java
<p>因为<code>a</code>中的值是唯一的,所以您可以在O(n)中创建一个dict来访问和检查O(1)中的元素</p>
<p>迭代<code>b</code>并在O(1)中使用dict检查b的每个元素,然后使用<code>set</code>操作将节省时间,还包括<code>b</code>和<code>a</code>中是否存在相同的多个相同元素</p>
<pre><code>a = ['ab','ac','ad', 'aba','abc'] # n = 10000 of unique strings
b = ['ab', 'ac', 'ab', 'kk'] # m = 100 have duplicates
c = []
a_dic = {i:1 for i in a}
sol = []
for i in b:
if a_dic.get(i, None):
sol.append(i)
</code></pre>