LeetCode(14. 最长公共前缀)

版权声明:https://blog.csdn.net/San_South https://blog.csdn.net/San_South/article/details/82929839
算法描述 :
编写一个函数来查找字符串数组中的最长公共前缀。

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

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"

示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。

说明:

所有输入只包含小写字母 a-z 。


算法实现 :

Java实现 :

class Solution {
    public String longestCommonPrefix(String[] strs) {

        // 排除[]的情况
        if (strs.length == 0) {
            return "";
        }

        // 计算出strs中元素的最小长度
        int min = strs[0].length();
        for (int i = 0; i < strs.length; i++) {
            if (strs[i].length() < min) {
                min = strs[i].length();
            }
        }

        // 排除strs中有空元素的情况, 如 {"", "egd"}
        if (min == 0) {
            return "";
        }

        StringBuilder res = new StringBuilder();
        for (int i = 0; i < min; i++) {
            char ch = strs[0].charAt(i); // ch记录第1个元素的第1个字符
            // ch依次从第2个元素比较,如果存在不匹配的情况,则返回结束
            for (int j = 1; j < strs.length; j++) {
                if (ch != strs[j].charAt(i)) {
                    return res.toString();
                }
            }
            res.append(ch); // 所有元素的第i个字符匹配,记录之.
        }

        return res.toString();
    }
}

猜你喜欢

转载自blog.csdn.net/San_South/article/details/82929839