[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 人正在系统学习中

目录
相关文章
|
3天前
|
Python
leetcode-14:最长公共前缀
leetcode-14:最长公共前缀
26 0
|
3天前
|
机器学习/深度学习 Java
LeetCode 14. 最长公共前缀
LeetCode 14. 最长公共前缀
37 1
|
7月前
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
24 0
|
3天前
|
C++ 索引
【力扣经典面试题】14. 最长公共前缀
【力扣经典面试题】14. 最长公共前缀
|
3天前
|
算法 Java
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
22 0
|
3天前
|
Java
LeetCode题解-最长公共前缀-Java
最长公共前缀-Java
10 0
|
3天前
leetcode-2000:反转单词前缀
leetcode-2000:反转单词前缀
28 0
leetcode-2000:反转单词前缀
|
11月前
|
算法 安全 Swift
LeetCode - #14 最长公共前缀
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
11月前
|
机器学习/深度学习
leetcode:14.最长公共前缀
要注意题目是要找公共前缀,不是子串,前缀的意思就是说前面必须是一样的。首先可以假设下标为0的元素就是目前找到的最长公共前缀,然后从下标1开始遍历,看看当前元素与第0个元素的公共前缀是什么,比较他们的长度,取较短的就是这次循环结束后的公共前缀了。
44 0
|
算法 Java
Java算法-LeetCode14最长公共前缀
Java算法-LeetCode14最长公共前缀
60 0