2021 年 9 月 1 日 链接:https://leetcode-cn.com/problems/longest-common-prefix/ 耗时:14m 时间复杂度:0(mn) 空间复杂度:0(1)

题目

描述

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例

示例 1:
输入:strs = [“flower”,”flow”,”flight”]
输出:”fl”

示例 2:
输入:strs = [“dog”,”racecar”,”car”]
输出:””
解释:输入不存在公共前缀。

限制

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

    解答

    思路

  • 以数组中第一个字符串作为参照字符串

  • 遍历第一个字符串中的字符
    • 遍历过程中,同时将第一个字符串中的当前索引字符与数组中其他字符串当前索引的字符对比
    • 如果一样,则存入结果
    • 如果不一样,则停止遍历

      代码

      ```javascript /**
      • @param {string[]} strs
      • @return {string} */ var longestCommonPrefix = function(strs) { let result = ‘’ // 取出第一个字符串,并且遍历第一个字符串 for(let i = 0; i < strs[0].length; i++){ if(checkStrs(strs, i, strs[0])){
        1. // 对比成功,则记入结果
        2. result += strs[0][i]
        } else{
           // 对比失败,停止记入
         break
        
        } } return result };

// 校验字符串数组中其他字符串当前索引的字符与此字符串中当前索引的字符是否相同 var checkStrs = function(strs, index, str) { for(let j = 1; j < strs.length; j++){ if(strs[j][index] !== str[index]){ return false } } return true } ```