擅长:python、mysql、java
<p>在我看来,更具可读性的版本是:</p>
<pre><code>from functools import reduce
def max_overlap(s1, s2):
return next(
i
for i in reversed(range(len(s2) + 1))
if s1.endswith(s2[:i])
)
def overlap(strs):
return reduce(
lambda s1, s2:
s1 + s2[max_overlap(s1, s2):],
strs, '',
)
overlap(l)
#> 'volcanowayleasequencerupt'
</code></pre>
<p>但是,它还考虑了以前重叠的单词中的“累积”字符:</p>
<pre><code>overlap(['split', 'it', 'lit'])
#> 'split'
</code></pre>