Leetcode第十四题(最长公共前缀)

简介: 这篇文章介绍了一种算法,用于在给定的字符串数组中找到最长公共前缀,通过逐字符比较每个字符串的对应位置,一旦发现不匹配立即返回当前已匹配的子串作为公共前缀。

题目描述:

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

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

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        for(int i = 0; i < strs[0].length();i++){
            char ch = strs[0][i];
            for(int j = 1;j < strs.size();j++){
                if(i == strs[j].length() || strs[j][i] != ch)
                    return strs[0].substr(0,i);
            }
        }
        return strs[0];
    }
};

以第一个字符串 strs[0] 为基准,将 strs[0] 中的每一个字符拿出来,与其它字符串的每一个对应位置的字符比较, 如果后面的字符串有 strs[j][i] != strs[0][i] 就直接返回 strs[0] 的子串 substr(0,i) ,若遍历完 strs[0] 字符串,则说明 strs[0] 为所有字符串的公共前缀

相关文章
|
7月前
|
机器学习/深度学习 Java
LeetCode 14. 最长公共前缀
LeetCode 14. 最长公共前缀
62 1
|
7月前
|
Python
leetcode-14:最长公共前缀
leetcode-14:最长公共前缀
45 0
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
【Leetcode-13.罗马数字转整数 -14.最长公共前缀】
55 0
|
4月前
|
算法
LeetCode第14题最长公共前缀
该文章介绍了 LeetCode 第 14 题最长公共前缀的解法,通过取一个字符串作为基准,一列一列字符比较来找出最长公共前缀,时间复杂度为 O(m * n),同时提到也可使用二分查找法,但代码复杂度会上升。
LeetCode第14题最长公共前缀
|
6月前
|
存储 算法 Java
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
47 1
|
6月前
|
算法
力扣经典150题第二十题:最长公共前缀
力扣经典150题第二十题:最长公共前缀
31 0
|
7月前
【力扣】14. 最长公共前缀
【力扣】14. 最长公共前缀
|
7月前
|
C++ 索引
【力扣经典面试题】14. 最长公共前缀
【力扣经典面试题】14. 最长公共前缀
|
7月前
|
算法 Java
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
49 0
|
7月前
|
Java
LeetCode题解-最长公共前缀-Java
最长公共前缀-Java
31 0