擅长:python、mysql、java
<p>如果您知道公共前缀所需的阈值频率:</p>
<pre><code>#!/usr/bin/env python
from collections import Counter
from itertools import izip_longest
strings = ['foo_a','foo_b','foo_c','fnord']
threshold = .7 * len(strings)
prefix = []
for chars in izip_longest(*strings, fillvalue=''):
char, count = Counter(chars).most_common(1)[0]
if count < threshold:
break
prefix.append(char)
print(''.join(prefix))
# -> foo_
</code></pre>
<p>或者,您可以收集所有常用前缀及其频率,然后再决定:</p>
^{pr2}$
<p>两个代码示例都假设存在主要前缀,即每个位置最常见的字符属于最常用前缀。在</p>