擅长:python、mysql、java
<pre><code>def det_pref(words):
cnt = {'':len(words)}
for w_pfx in itertools.chain.from_iterable([[w[:i] for i in range(1,len(w)+1)] for w in words]):
cnt[w_pfx] = 1 + cnt.get(w_pfx,0)
return max([w_pfx for (w_pfx,n) in cnt.items() if n/len(words)>0.7])
</code></pre>
<p>警告:由于此解决方案在循环过程中没有早期输出和输入缩减,因此它的效率低于原始代码。在</p>
<p>这里有一个更有效的方法,它仍然是Python式的,但比我的第一个方法更难理解,时间也更长:</p>
^{pr2}$