为了账号安全,请及时绑定邮箱和手机立即绑定

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];
    }
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消