[leetcode] 最长公共前缀 简单水题模拟

简介: 根据数据范围来说,我们可以枚举最长公共前缀的长度,长度的范围是[0, minLen(strs)]然后一边枚举长度一边判断是否成功即可还有一种就是将判断是否满足公共前缀写成check函数,然后用二分的方法来得到最长的前缀长度题目很水Code:

题目链接

3a0a4e7a21104932a086ea4aaa8bb63c.png

根据数据范围来说,我们可以枚举最长公共前缀的长度,长度的范围是[0, minLen(strs)]

然后一边枚举长度一边判断是否成功即可

还有一种就是将判断是否满足公共前缀写成check函数,然后用二分的方法来得到最长的前缀长度

题目很水


Code:


class Solution {
public:
    bool check(vector<string>& strs, string temp, int len){
        int flag = 0;
        for(int i = 1;i < strs.size();i ++) {
            if(strs[i].substr(0,len) != temp) {
                flag = 1;
                break;
            }
        }
        return flag;
    }
    string longestCommonPrefix(vector<string>& strs) {
        int n = strs.size();
        int miniLen = 2000;
        string nul = "";
        for(int i = 0;i < n;i ++) {
            miniLen = min(miniLen, (int)strs[i].size());
        }
        int l = 0,r = miniLen + 1;
        while(l < r) {
            int len = (l + r) / 2;
            string temp = strs[0].substr(0,len);
            int flag = check(strs, temp, len);
            if(flag) r = len;
            else l = len + 1;
        }
        if(check(strs, strs[0].substr(0,l), l)) -- l;
        return strs[0].substr(0,l);
    }
};


21e7831c87e749afb940da89acef1626.png


文章知识点与官方知识档案匹配,可进一步学习相关知识

算法技能树leetcode-动态规划22-括号生成8242 人正在系统学习中

目录
相关文章
|
6月前
|
机器学习/深度学习 Java
LeetCode 14. 最长公共前缀
LeetCode 14. 最长公共前缀
57 1
|
6月前
|
Python
leetcode-14:最长公共前缀
leetcode-14:最长公共前缀
42 0
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
50 0
|
1月前
|
算法
Leetcode第十四题(最长公共前缀)
这篇文章介绍了一种算法,用于在给定的字符串数组中找到最长公共前缀,通过逐字符比较每个字符串的对应位置,一旦发现不匹配立即返回当前已匹配的子串作为公共前缀。
24 0
|
3月前
|
算法
LeetCode第14题最长公共前缀
该文章介绍了 LeetCode 第 14 题最长公共前缀的解法,通过取一个字符串作为基准,一列一列字符比较来找出最长公共前缀,时间复杂度为 O(m * n),同时提到也可使用二分查找法,但代码复杂度会上升。
LeetCode第14题最长公共前缀
|
5月前
|
存储 算法 Java
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
40 1
|
5月前
|
算法
力扣经典150题第二十题:最长公共前缀
力扣经典150题第二十题:最长公共前缀
29 0
|
6月前
【力扣】14. 最长公共前缀
【力扣】14. 最长公共前缀
|
6月前
|
C++ 索引
【力扣经典面试题】14. 最长公共前缀
【力扣经典面试题】14. 最长公共前缀
|
6月前
|
算法 Java
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
45 0