<LeetCode力扣>14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例 1:
输入:strs =[“flower”,“flow”,“flight”]
输出:“fl”

示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:“”
解释:输入不存在公共前缀。

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

======================================================================================================
分析:
设公共前缀为res = “”;
如果存在最长公共前缀,那说明strs字符串数组中长度最小的一个字符串就是最长公共前缀,先找出来记为minLength。此时遍历数组,逐位比较每个字符串的前minLength位是否相同,相同就加入res,不同就直接返回上次循环的结果res。

class Solution {
    public String longestCommonPrefix(String[] strs) {
        int length = strs.length;
        String res = "";
        int minLength;
        if(length > 0){
            minLength = strs[0].length();
        }
        else{
            return "";
        }
        for(int i = 1;i < length; i++){
            if(strs[i].length() < minLength){
                minLength = strs[i].length();
            }
        }
        for(int i = 0;i < minLength;i++){
            for(int j = 1;j < length;j++){
                if(strs[j].charAt(i) != strs[0].charAt(i)){
                    return res;
                }
            }
            res += strs[0].charAt(i);
        }
        return res;
    }
}

在这里插入图片描述

你可能感兴趣的:(LeetCode刷题日记,力扣)