leetcode 14. 最长公共前缀 |刷题打卡

121 阅读1分钟

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述:

leetcode 14. 最长公共前缀

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

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

示例 1:

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

示例 2:

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

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

提示:

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

二、思路分析:

递归循环遍历查找最长公共前缀。

三、AC代码

let findCom = function(strs, ind) {
    if(!strs[0]) return false;
    let start = strs[0][ind];
    for(let i = 0; i < strs.length; i ++) {
        if(!start || !strs[i][ind] || (strs[i][ind] != start)) {
            return false;
        }
    }
    return start;
}
var longestCommonPrefix = function(strs) {
    let com = '';
    let ind = 0;
    function digui() {
        let str = findCom(strs, ind);
        if (!str) {
            return com;
        } else {
            com += str;
            ind ++;
            digui(ind);
        }
    }
    digui();
    return com;
};

执行结果

执行结果:通过
执行用时:100 ms, 在所有 JavaScript 提交中击败了33.52%的用户
内存消耗:40.7 MB, 在所有 JavaScript 提交中击败了11.16%的用户

四、总结:

  • 程序调用自身的编程技巧称为递归
  • 递归要做循环退出的条件,否则就是死循环