手记

leetcode算法14.最长公共前缀

👏👏👏

哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍

⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。✊✊✊

⭐【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。🤝🤝🤝

⭐如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。😘😘😘

❤️❤️❤️感谢各位朋友接下来的阅读❤️❤️❤️

@[TOC]

一、leetcode算法

1、最长公共前缀

1.1、题目

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”

1.2、思路

思路一:本题要抓住几个主要的点,首先是公共前缀,那么就是从第一个字符开始找公共的前缀,并且是最长的,那么意味着最长不能超过任意一个字符串的长度,例如数组中其它的字符串都很长,其中有一个字符串为“a”,那么最终的字符串长度不会超过“a”的长度。这样的话我们可以先把第一个字符串拿出来,然后用第一个字符和其他字符串的第一个字符相比,如果相同,那么就拿第一个字符串的第二个字符和其他的字符串相比,以此类推,只到出现字符不相同或者第一个字符串的长度都比完了就结束了。

1.3、答案

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if(strs == null || strs.length ==0){
            return "";
        }
        int length = strs[0].length();
        int count = strs.length;
        for(int i = 0; i < length; i++){
            char c = strs[0].charAt(i);
            for(int j = 1; j < count; j++){
                if(i == strs[j].length() || strs[j].charAt(i) != c){
                    return strs[0].substring(0,i);
                }
            }
        }
        return strs[0];
    }
}
0人推荐
随时随地看视频
慕课网APP