我有一根弦:“弦” 你要做的第一件事就是反转它:“gnits” 然后从第一个位置取下字符串并再次反转:“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
这种线性实现可以为您指明正确的方向:
您可以在以下示例中识别切片模式:
这同样有效:
这个,虽然看起来像意大利面:D
根据原始字符串的模式和结果,我构造了这个算法。它的操作数最少。你知道吗
相关问题 更多 >
编程相关推荐