这是我的代码。处理大字符串输入需要超过一分钟的时间。有什么方法可以固定它
q=int(input())
x=input()
count=0
for i in range(q):
for j in range(q):
k= j+i+1
if k<=q:
u=x[i:k]
if u[0]==u[-1] or len(u)==1:
count+=1
print(count)
最佳答案
至少有两个问题:
1) 您正在遍历太多 k > q 的值。内循环应该在一个范围内,这取决于 i
2) 所有这些切片 (u = x[i:k]) 的意义何在?为什么直接检查 u[0] 和 u[-1] 而不是 x[i] 和 x[k-1]?另外——您可以通过对 i 和 k 进行算术运算来检查 u 的长度。这些切片是不必要的,可能是罪魁祸首。
无论如何 - 很有可能有一种非常简单的方法来做您想做的事情,一种完全避免嵌套循环的方法。
关于python - 加速 python 嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31017029/