14. 最长公共前缀

2022-01-05  本文已影响0人  名字是乱打的

一 题目:

二 思路:

根据题目意思提取出一点公共前缀比所有字符串都短,那么我们可以随便选一个字符串当公共前缀,然后依次往后比较,如果没有该公共子串就减去一个最后的字符继续比较,如果公共子串长度变为0,咱们就提前结束,减到最后的结果就是咱们的目标公共子串

三 代码:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs.length==0){
            return "";
        }
        //公共前缀比所有字符串都短,先随便选一个
        String commonPre = strs[0];
        //比较每个字符串,目标是找到一个所有字符串的公共子串,这个子串肯定长度是最短的
        for (String curr : strs) {
            while (!curr.startsWith(commonPre)){
                //如果公共子串变成空串就没必要继续比较了
                if (commonPre.length()==0){
                    return "";
                }else {
                    //如果不匹配就让公共串继续变短
                    commonPre=commonPre.substring(0,commonPre.length()-1);
                }
            }
        }
        return commonPre;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读