擅长:python、mysql、java
<p>在没有任何虚假内存使用的情况下,您可以将一些惰性迭代器/生成器与<code>reversed</code>和<code>zip</code>一起使用</p>
<pre><code>def interleave(s):
gen = (c for pair in zip(s, reversed(s)) for c in pair)
return "".join(next(gen) for _ in s)
>>> interleave("abcdef")
'afbecd'
>>> interleave("abcde")
'aebdc'
</code></pre>
<p>您可以引入更多UTIL来进一步缩短代码:</p>
<pre><code>from itertools import chain
def interleave(s):
gen = chain.from_iterable(zip(s, reversed(s)))
return "".join(next(gen) for _ in s)
</code></pre>