欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

算法探索_最长公共前缀

程序员文章站 2022-04-21 10:37:20
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix解......

题目描述:

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

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

示例 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;

}

 

本文地址:https://blog.csdn.net/qq_39731011/article/details/107655285