开发者社区> 问答> 正文

Str 切片后操作的 Runtime 比切片后重新赋值的 Runtime 慢的多,为什么?

我测试了两个代码:

代码 1:

def check1(x):
    y = str(x)[::-1] 
    return str(x)== y

运行结果:

11509/11509 cases passed (52 ms)
Your runtime beats 99.12 % of python3 submissions
Your memory usage beats 99.64 % of python3 submissions (12.7 MB)

代码 2:

def check2(x):
        return str(x)==str(x)[::-1]

运行结果

11509/11509 cases passed (92 ms)
Your runtime beats 30.82 % of python3 submissions
Your memory usage beats 99.64 % of python3 submissions (12.7 MB)

两个函数分别在 leetcode 上运行时间分别是 32ms 和 36ms。

我测了两个函数的调用时间分别时 0.00705718994140625、0.009938955307006836。

@Jason990420,帮我更正数据,两个函数本地调用时间相差不大,都是 0.006ms 左右

但是在 leetcode 上提交代码,测试案例为何 runtime 差距这么大呢

展开
收起
几许相思几点泪 2019-12-29 18:43:08 853 0
1 条回答
写回答
取消 提交回答
  • 答案来自 leetcode 社区给我的回答: 再提交一次就会发现时间变了。python 的本身 overhead 比较大,出现波动很正常。第二个代码我又提交了一次是 40ms。

    不过有兴趣可以看一下这个文章:http://blog.kevmod.com/2016/07/why-is-pyth...

    2019-12-29 18:43:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载