Longest Common Prefix

/*

两层for循环 "dog","racecar","car"

第一层循环第一个数的长度用于增加长度

第二个循环 遍历每个数组的相同位置用于比较是否是相同;

失败 结果不对

class Solution {

    public String longestCommonPrefix(String[] strs) {

        if(strs == null || strs.length == 0) return "";


        int count;

        int i = 1;

        int len = Integer.MAX_VALUE;

        for(int j = 0; j < strs.length; j++) {

            len = Math.min(len, strs[j].length());

        }

        for(count = 0; count < len; ) {

            while(i < strs.length && str[0].charAt(count) == strs[i].charAt(count)) {

                i++;

            }

            //for(i = 1; i < strs.length; i++) {

              //  if(strs[0].charAt(count) != strs[i].charAt(count)) {

                //    break;

                //}

            //}

            if(i == strs.length - 1) {

                count++;

                continue;

            }else {

                break;

            }

        }

        if(count == 0 && i != strs.length - 1) {

            return "";

        }else {

            return strs[0].substring(0,count);

        }


    }

}

*/

/*

思路 首先建立一个储存prefix的string 把数组里面第一个数存进去

循环 整个数组

二层循环 循环数组中每个字符串与prefix比较 是否相同 把相同的部分更新成新的prefix;

*/

class Solution {

    public String longestCommonPrefix(String[] strs) {

        if(strs == null || strs.length == 0) return "";

        String prefix = strs[0];

        for(int i = 1; i < strs.length; i++) {

            int j = 0;

            while(j < strs[i].length() && j < prefix.length() && strs[i].charAt(j) == prefix.charAt(j)) {

                j++;

            }

            if(j == 0) return "";

            prefix = prefix.substring(0,j);

        }

        return prefix;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 5,269评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,607评论 18 399
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 8,560评论 0 19
  • 两天都没写了,这几天好懒,什么都没做,其实在家也没事可做,家里又小又挤又冷,哎!
    长颈鹿少女日记阅读 1,117评论 0 0
  • 碎片化阅读有的人说好有的人说不好,最开始我是现在好的方面的我认为碎片化学习可以有效地利用各种时间,并且学习内容短小...
    一条红烧鱼呦阅读 1,526评论 0 0

友情链接更多精彩内容