这个函数怎么分析时间复杂度

var countSubstrings = function(s) {
    const isPal = str=>str===str.split('').reverse().join('')
    let count  = 0
    for(let i =0;i<s.length;i++){
        for(var j=i;j<s.length;j++){
            isPal(s.slice(i,j+1)) && count++
        }
    }
    return count
}

两层循环N^2
里面的slice我算o(n)
这就n^3了?
然后还有一个isPal函数的复杂度没算 不会算
这个合起来要怎么算时间复杂度?
来个大神教一下

我潜意识估计o(n^3),不知道对不对,要怎么解释下

阅读 1.3k
1 个回答

O(n^2)

时间的复杂度最简单测试办法 for循环最内层里面输出执行次数。
而不是内部程序执行也算复杂度 而且还是相乘的关系。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题