最长公共前缀

记录一下,从今天开始,刷LeetCode的题,期待早日刷完!java

查找字符串数组中的最长公共前缀。若是不存在公共前缀,返回空字符串 ""git

示例 1:github

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

示例 2:数组

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

说明:code

全部输入只包含小写字母 a-z 。ip

/**
 * @Author : Yanqiang
 * @Date : 2019/5/17
 * @Param : [strs]
 * @return : java.lang.String
 * @Description :
 *      讲解: 先把[第一个]从后往前截取,边截取边与[第二个]比较,直到有相同的前缀,存放到prefix,
 *            再拿prefix与后面的几个字符串边截取边,存放到prefix,
 *            最后剩下的,确定是全部字符串共同的前缀,没有共同前缀的话就回到空字符串了
 */
public static String getCommonPrefix(String[] str) {
    int count = str.length;
    String prefix = "";
    if(count != 0){
        prefix = str[0];
    }
    for(int i=0; i<count; i++){
        //关键代码,不断的从后往前截取字符串,而后与之相比,直到startsWith()返回true
        while(!str[i].startsWith(prefix)){
            int length = prefix.length();
            prefix = prefix.substring(0, length-1 );
        }
    }
    return prefix;
}

 

LeetCode 所有题目讲解与答案,可移步 GitHub:https://github.com/yan-qiang/LeetCode字符串

相关文章
相关标签/搜索