擅长:python、mysql、java
<p>假设输入序列是无序的,这里有<code>O(N)</code>解(在空间和时间上)。
它生成一个删除了重复项的序列,同时将唯一项保留为它们在输入序列中出现的相同相对顺序。</p>
<pre><code>>>> def remove_dups_stable(s):
... seen = set()
... for i in s:
... if i not in seen:
... yield i
... seen.add(i)
>>> list(remove_dups_stable(['q', 'w', 'e', 'r', 'q', 'w', 'y', 'u', 'i', 't', 'e', 'p', 't', 'y', 'e']))
['q', 'w', 'e', 'r', 'y', 'u', 'i', 't', 'p']
</code></pre>