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

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.4k
1 个回答

O(n^2)

时间的复杂度最简单测试办法 for循环最内层里面输出执行次数。
而不是内部程序执行也算复杂度 而且还是相乘的关系。
推荐问题