编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

我用JS刷LeetCode | Day 4(javascript刷题)

wxchong 2024-09-07 01:24:11 开源技术 9 ℃ 0 评论


最长公共前缀:

说明:现阶段的解题暂未考虑复杂度问题

Question:

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Note:

All given inputs are in lowercase letters a-z.

中文题目:

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

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

注意:

所有输入只包含小写字母 a-z 。

Example:


Input: ["flower","flow","flight"]
Output: "fl"
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.

个人分析:

  1. 「公共」,说明是数组中的每个元素所共有的,「前缀」,说明从元素的左边开始算起。
  2. 先考虑特殊情况:当数组为空时,直接返回空字符串
  3. 看到题目稍加思索,应该想到:先比较数组中每个元素的第一位,如果都相同,则开始比较每个元素的第二位,依次类推;直到出现一个元素的某一位不在其他元素中都出现,此时返回这个元素之前的值
  4. 因为公共前缀是在在所有的元素中都存在的,所以我们可以以第一个元素作为标记点,将他的每一位和其他元素的每一位进行比较。
  5. 如果第一个元素遍历完成还没出现不在其他元素中值,则直接返回第一个元素。
  6. 得出如下答案。

Answer:

var longestCommonPrefix = function (strs) {
    if (strs.length === 0) return ''
    let result = strs[0]
    for (let j = 0; j < tag.length; j++) {
        for (let i = 0; i < strs.length; i++) {
            if (strs[i][j] !== result[j]) {
                return strs[i].slice(0, j);
            }
        }
    }
    return result
};

其他:

本题更多 JavaScript 解析,请看「了解更多」

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表