擅长:python、mysql、java
<p>下面是一个尝试(键在python 3.6 dict中排序):</p>
<pre class="lang-py prettyprint-override"><code>from collections import defaultdict
def find_odd(s):
counter = defaultdict(int)
for x in s:
counter[x] += 1
return [l for l, c in counter.items() if c%2 != 0]
</code></pre>
<p>该算法的复杂度小于2n,即O(n)</p>
<p><strong>示例</strong></p>
<pre class="lang-py prettyprint-override"><code>>>> s = "hello world"
>>> find_odd(s)
['h', 'e', 'l', ' ', 'w', 'r', 'd']
</code></pre>