算法探索_最长公共前缀

题目描述:

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

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

示例 1:

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix

解决思路:

简单粗暴,依次判断所有字符串的同一下标是否相同,一旦不同立即return当前结果

/*
 *作者:赵星海
 *时间:2020/7/29 9:01
 *用途:最长公共前缀
 */
public String longestCommonPrefix(String[] strs) {
    //首先排除三个特殊情况 null 长度0 长度1
    if (strs == null || strs.length == 0) return "";
    if (strs.length == 1) return strs[0];
    for(String sss :strs){
        if (sss.equals(""))return "";
    }
    String s = "";//当前最长公共前缀
    char c = '-';//当前用来对比的字符
    for (int i = 0; i < strs[0].length(); i++) {
        for (int j = 0;   j < strs.length; j++) {
            //取每一个String 的同一个下标的字符进行对比
            if (strs[j].length()>i){
                if (j == 0) {
                    c = strs[j].charAt(i);
                } else {
                    if (strs[j].charAt(i) != c) {
                        return s;
                    }
                }
            }else {
                return s;
            }

        }
        s += c;
    }
    return s;

}

 

你可能感兴趣的:(算法,算法,java,最长公共前缀,leetcode,leetcode,最长公共前缀)