python - 加速 python 嵌套循环

标签 python algorithm performance loops

这是我的代码。处理大字符串输入需要超过一分钟的时间。有什么方法可以固定它

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/

相关文章:

python - 如何使用 django 配置 apache?

java - 迷宫 2D 递归算法问题

performance - JSON 解析器的基准?

c++ - 对于非常接近 1 的基数,std::pow() 非常慢

Python 多个 click.options - 得到意外的关键字参数

python - Python字典中的更新方法

python - 无法读取使用不同方法写入的文件的内容

javascript - 这个算法的时间和空间复杂度是O(n)还是O(1)?

algorithm - 有人可以帮我做算法作业吗?

C++ 访问远离当前类层次结构的对象