14.最长公共前缀

简介: 14.最长公共前缀

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

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

                     

解题思路:横向扫描,依次遍历每个字符串,更新最长公共前缀。另一种方法是纵向扫描。纵向扫描时,从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较,如果不相同则当前列不再属于公共前缀,当前列之前的部分为最长公共前缀。

class Solution{
    public String longestCommonPrefix(String[] strs){
        if(strs==null||strs.length==0){
            return "";        
        }   
        int length=strs[0].length();
        int count=strs.length;
        for(int i=0;i<length;i++){
            char c=strs[0].charAt(i);
            for(int j=1;j<count;j++){
                if(i==strs[j].length()||strs[j].charAt(i)!=c){
                    return strs[0].substring(0,i);                
                }            
            }        
        } 
        return strs[0];
    }
}


相关文章
|
4月前
|
机器学习/深度学习 Java
LeetCode 14. 最长公共前缀
LeetCode 14. 最长公共前缀
50 1
|
4月前
|
Python
leetcode-14:最长公共前缀
leetcode-14:最长公共前缀
36 0
|
1月前
|
算法
LeetCode第14题最长公共前缀
该文章介绍了 LeetCode 第 14 题最长公共前缀的解法,通过取一个字符串作为基准,一列一列字符比较来找出最长公共前缀,时间复杂度为 O(m * n),同时提到也可使用二分查找法,但代码复杂度会上升。
LeetCode第14题最长公共前缀
|
3月前
14. 最长公共前缀
14. 最长公共前缀
|
3月前
|
Java
5.最长回文子串
5.最长回文子串
|
4月前
|
C++
最长公共前缀(C++)
最长公共前缀(C++)
33 0
字符串的全排列
字符串的全排列
69 0
|
算法 安全 Swift
LeetCode - #14 最长公共前缀
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
机器学习/深度学习
leetcode:14.最长公共前缀
要注意题目是要找公共前缀,不是子串,前缀的意思就是说前面必须是一样的。首先可以假设下标为0的元素就是目前找到的最长公共前缀,然后从下标1开始遍历,看看当前元素与第0个元素的公共前缀是什么,比较他们的长度,取较短的就是这次循环结束后的公共前缀了。
57 0
|
算法 前端开发 API
字符串看到 ”回文“ 尝试双指针
字符串看到 ”回文“ 尝试双指针
59 0