python - 需要帮助减少 python 代码的执行时间

标签 python execution-time

正如标题所说,我需要帮助减少我编写的代码的执行时间,因为我正在编译它的在线法官给了我一个超出时间限制的错误,即使代码似乎可以工作并给出正确的答案当我编译它时。

问题:

比较字符串列表并查找不同字符串的数量,其中如果两个字符串完全相同或相同但相反,则将它们视为“相同”(不不同)。字符串仅包含字母 a-z,全部小写,最多 10 个字符。提供的每组最多包含 5000 个字符串。

例如,字符串“abc”与“cba”以及“abc”相同。字符串“cba”与“abc”以及“cba”相同。列表 ["abc,""cba,""bac"] 中有 2 个不同的字符串。

编写一个函数answer(x),它接受字符串列表 x,并使用相同的定义返回不同字符串的数量。

我的代码:

def answer(x):
    b=0
    ph=[]
    rand=0
    for y in x:
        comp=list(y)
        ph.append(comp)
    while b<len(ph)-1:
        j=b+1
        while j<len(ph):

            if(len(ph[b])==len(ph[j])):
                i=0

                while(i<len(ph[b])):

                    if ph[b][i]==ph[j][i]:
                        rand+=1

                    elif ph[b][i]==ph[j][len(ph[b])-1-i]:
                        rand+=1
                        i+=1
                if rand==len(ph[b]):
                    ph.pop(j)
                rand=0
            j+=1
        b+=1

    return len(ph)

最佳答案

不需要进行串行字符比较来检查字符串身份。

Python 中的字符串是不可变的。只需将字符串及其反义词放入字典中,然后始终对照该字典进行检查。

def answer(x):
    seen = {}
    count = 0
    for s in x:
        if s not in seen:
           seen[s] = True
           seen[s[::-1]] = True
           count +=1
    return count

关于python - 需要帮助减少 python 代码的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27453344/

相关文章:

python - 用于测试字符串的可能值的有限调色板的正则表达式?

python - 创建动态定义属性的 Python 类

arrays - 提高 MATLAB 代码速度

比较各种 pthread 结构的性能

java - 用于计算未正确输出的算法的比较和执行时间的代码

python - 在 C++ 中更快执行两个程序的可能解释(与 Python 比较)?

python - 如何解释 Python 输出 dtype ='<U32'?

python - 从文本文件导入数据时向预先存在的字典键添加值 (Python 3)

Python:CircularQueue 从队列的开始到结束打印项目

php - fatal error : Maximum execution time of 0 seconds exceeded