gpt4 book ai didi

python - 如何优化这个与字符串反转相关的函数?

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:00 34 4
gpt4 key购买 nike

我有一个字符串:“String”你要做的第一件事就是反转它:“gnirtS”然后你将从第一个位置取出字符串并再次反转:“gStrin”然后你将从第二个位置取出字符串并再次反转:“gSnirt”然后你将从第三个位置取出字符串并再次反转:“gSntri”继续这种模式,直到完成每个位置,然后您将返回您创建的字符串。对于这个特定的字符串,您将返回:“gSntir”

我必须重复整个过程 x 次,其中字符串和 x 可能非常大。 (百万或十亿)

我的代码对于小字符串工作正常,但对于很长的字符串会出现超时错误。

def string_func(s,x):
def reversal(st):
n1=len(st)
for i in range(0,n1):
st=st[0:i]+st[i:n1][::-1]
return st
for i in range(0,x):
s=reversal(s)
return s

最佳答案

这种线性实现可以为您指明正确的方向:

from collections import deque
from itertools import cycle

def special_reverse(s):
d, res = deque(s), []
ops = cycle((d.pop, d.popleft))
while d:
res.append(next(ops)())
return ''.join(res)

您可以识别以下示例中的切片模式:

>>> special_reverse('123456')
'615243'
>>> special_reverse('1234567')
'7162534'

关于python - 如何优化这个与字符串反转相关的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57961805/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com