算法:最长公共前缀(横向扫描和纵向扫描)

 横向扫描 时间复杂度 O(m * n),空间复杂度O(1)

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    // 先把第一个字符串拿出来
    let str = strs[0]

    // 用 startsWith 检查数组中每个字符串是否以当前字符串为前缀
    while(!strs.every(item=>item.startsWith(str))){

         // 如果不是的话就将当前字符串的末尾字符扔掉
         str = str.slice(0,str.length-1)
    }
    return str ===''?'':str
};

 纵向扫描 时间复杂度 O(m * n),空间复杂度O(1)

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function(strs) {
    let prefix = ''

    // 先把第一个字符串拿出来
    let str = strs[0]

    // 外层循环先从第一个字符串的第一个字符开始
    for(let i=0; i<= str.length; i++){
        let char = str[i]
        if (strs.length === 0) {
            return '';
        }   
        if(strs.length==1){
            return strs[0]
        }

        // 内层循环要从当前字符串的下一个字符串进行比对
        for(let j=1; j<= strs.length-1; j++){
           // 如果下一个字符串的第i个字符不等于当前字符串的第i个字符
           // 或者当前字符串的长度大于下一个字符串的长度则终止循环
           if(strs[j][i] !== char || i >= strs[j].length){
               return prefix
           }
        }
        // 符合条件的字符和当前字符拼接
        prefix += char
    }
    return prefix
};

相关推荐

  1. leetcode14 公共前缀-纵向比较

    2023-12-09 19:32:04       27 阅读
  2. leetCode算法—14. 公共前缀

    2023-12-09 19:32:04       66 阅读
  3. 公共前缀

    2023-12-09 19:32:04       35 阅读
  4. 14.公共前缀

    2023-12-09 19:32:04       24 阅读
  5. LeetCode 14 公共前缀

    2023-12-09 19:32:04       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 19:32:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 19:32:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 19:32:04       87 阅读
  4. Python语言-面向对象

    2023-12-09 19:32:04       96 阅读

热门阅读

  1. 决策树 ID3 算法

    2023-12-09 19:32:04       48 阅读
  2. day4 移出倒数第n个节点

    2023-12-09 19:32:04       57 阅读
  3. ArchLinux下载链接

    2023-12-09 19:32:04       65 阅读
  4. Python中一些有趣的例题

    2023-12-09 19:32:04       52 阅读
  5. SELinux refpolicy详解(13)

    2023-12-09 19:32:04       63 阅读
  6. 车载蓝牙音乐流程简单分析

    2023-12-09 19:32:04       60 阅读
  7. 装箱 Box 数据类型

    2023-12-09 19:32:04       55 阅读
  8. Linux 常用命令

    2023-12-09 19:32:04       64 阅读
  9. 从视频中截取指定帧图片

    2023-12-09 19:32:04       53 阅读