字符串「4」最长公共前缀 | 刷题打卡

139 阅读1分钟

前言

这是我第10篇刷题打卡文章,曾几何时我没想过自己会这样在晚上11点还在写题解,但是这次我做到了,发现也没有想象中那么难。

src=http___img.tukexw.com_img_d40e0ed245c164cf.jpg&refer=http___img.tukexw.gif

今日题目

leecode14. 最长公共前缀

写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""。

示例 1:

输入:strs = ["flower","flow","flight"]

输出:"fl"


示例 2:

输入:strs = ["dog","racecar","car"]

输出:""

解释:输入不存在公共前缀。

题目解析

首先审题,最长公共前缀(想了很久以为是最长字串,结果搞了半天没搞明白,大家一定注意审题),也就是要从头开始一个个往后比较

注意特殊情况:

  1. strs如果为[], 直接返回''
  2. strs只有一个字串, 那就直接返回这个字串

假设最长公共前缀 result 的值为第一个字符串, 遍历后面的字符串,依次将其与 result 进行比较,两两找出公共前缀,最终结果即为最长公共前缀

var longestCommonPrefix = function(strs) {
    if (strs.length == 0) return ""
    if (strs.length === 1) return strs[0]
    let result = strs[0]
    for(let i = 1; i < strs.length; i++) {
        let j = 0
        for(; j < result.length && j < strs[i].length;j++) {
            if(result[j] != strs[i][j])
                break
        }
        result = result.substr(0, j)
        if (result === "")
            return result
    }
    return result
}

image.png

总结

今日份任务完成,棒呆!

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情