字符串的N次迭代

时间:2019-06-22 11:19:05

标签: python string for-loop

我有一个字符串s。我采用字符串s的所有偶数索引字符并将它们推到前面,而所有奇数索引字符都推到后面。然后,我将s字符串连接起来。

现在,我想这样做N-times,但是对于长字符串和N大于十亿的代码,我正在使用的代码失败了。

def n_iters(s, n):
    for i in range(n):
        s = s[::2] + s[1::2]
    return s

有什么想法可以优化它吗?

代码失败的示例将是长度为s8000000的字符串N = 100000000

1 个答案:

答案 0 :(得分:0)

事实证明,可以通过以下方法来加快速度。

def n_inters(s, n):
    iterations = [s]
    while True:
       s = s[::2] + s[1::2]
       if s == iterations[0]: break
       iterations.append(s)

    return iterations[n % len(iterations)]