位置:首页 » 技术 » 【LeetCode-口试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】

【LeetCode-口试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】

日期:2015-07-02 阅读:0num
Advertisement

【LeetCode-面试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】

【014-Longest Common Prefix(最长公共前缀)】


【LeetCode-面试算法经典-Java实现】【所有题目目录索引】

原题

  Write a function to find the longest common prefix string amongst an array of strings.

题目大意

  写一个函数找出一个字串所数组中的最长的公共前缀。

解题思路

  第一步先找出长度最小的字符串,然后将这个字符串与其它的字符串相比找出最短的最公共前缀。

代码实现

public class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null) {
            return null;
        }

        if (strs.length == 0) {
            return "";
        }

        int min = Integer.MAX_VALUE;  // 记录最短的字符串的长度

        // 找短字符串的长度
        for (String str : strs) {

            if (str == null) {
                return null;
            }

            if (min > str.length()) {
                min = str.length();
            }
        }

        int i; // 记录最长前缀的字符数
        boolean flag;
        for (i = 0; i < min; i++) {
            flag = true;
            for (int j = 1; j < strs.length; j++) {
                if (strs[0].charAt(i) != strs[j].charAt(i)) {
                    flag = false;
                    break;
                }
            }

            if (!flag) {
                break;
            }
        }

//        if (i == 0) {
//            return null;
//        }

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

    }
}

评测结果

  点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。

【LeetCode-口试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】

特别说明

欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/46963385】

版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode-口试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】的相关内容

相关文章
最新文章
  • 三星s6厚度是多少? 三星s6厚度是多少?

    韩国媒体underkg.co.kr给出了Galaxy S6的精确尺寸图.相比于此前从保护套上看到的数据,这一次无疑更接近真相,而且从图上的接口.Home键.电源键.音量键.摄像头.心率传感器等布局看,也符合三星的风格和此前泄露的渲染图. 首先,Galaxy S6的厚度将会只有6.91毫米,也就是和iPhone 6完全相同. 另外,它的高度和宽度分别为143.30毫米.70.81毫米,而屏幕尺寸为107.32×64.36毫米(应该还是5.1寸),也就是说边框宽度仅为3.225毫米,相当相当窄了.

  • 振发承建联合国开发计划署屋顶分布式光伏项目在京并网 振发承建联合国开发计划署屋顶分布式光伏项目在京并网

    1月13日,联合国开发计划署30.75kWp屋顶分布式光伏项目并网仪式在联合国大楼举行. 该项目位于北京市朝阳区亮马河南路2号联合国大楼楼顶,由联合国开发计划署投资.振发新能源科技有限公司承建,项目总投资约26万元,利用办公楼和会议楼顶面积约360 m2,预计首年发电量38400 kWh,投资回报期为4年.根据测算,项目运行后每年可节约标准煤14687.73kg,有效减少CO2.SO2.NO2和粉尘的排放.江苏振发控股集团有限公司技术总监张继远介绍,项目组件采用25°倾角安装,相对于平铺安装,发

  • 古代女子15岁不嫁要坐牢?古代怎么惩罚剩女 古代女子15岁不嫁要坐牢?古代怎么惩罚剩女

    近年来,随着单身男女日渐增多,每年11月11日的"光棍节"越来越受到关注.其实,对于解决单身婚龄男女的婚姻问题,在古代也是相当重视的.如果适龄男女都不急着结婚生子,整个社会人丁缺乏,生产和戍边就得不到保障. 古代人认为"男有室女有家"后,社会才能更加稳定和谐.因此,为了尽量减少"剩男剩女"这种社会现象的出现,有的朝代提前女性的婚配年龄,强制出嫁;有的设立"官媒""拉女配",强制结婚;有的甚至颁布"

  • PHP目录遍历函数 PHP目录遍历函数

    PHP目录遍历代码,列出指定目录或路径下的所有文件夹和文件.这在平时,是比较基础的功能,PHP中的内置函数为我们提供了实现此功能的诸多便利,整体来说,实现PHP目录列表遍历不是难事,以下函数就可以: 用法示例,直接调用该函数即可:读取temp目录下的所有目录和文件: view sourceprint?1echo list_files("/temp")

  • 中移动被指强推定制业务吸费 回应称未另行收费

    日前,有网友在微博曝光中移动吸费,称在不知情条件下部分用户被定制了相关业务.中国移动昨日回应,有些业务是包含在定制套餐或由运营商免费赠送的,并不另行收费. 6月7日早8点,@王巍w在新浪微博上表示,他在查询移动增值业务时发现,几项套餐外的收费项目并非自己所订."编辑短信0000发至10086,可以看到你所有套餐外的收费项目,你都不知道你有的,回复短信就可以立即取消,1分钟不用."王巍的这条微博引发广泛转载. 记者翻阅微博评论发现,很多人都提到的"不知情定制"包括新闻

  • 上海崇明学宫

    崇明学宫是现今上海仅存的三座学宫之一.现址又称崇明博物馆,为市级文物保护单位.出崇明南门码头,仅走二三百米,便能望见学宫那层层叠叠的古建筑群.二座石柱牌楼古朴沉稳,上书"德配天地,道冠古今".门前是二株有 350年历史.三人合抱的银杏树,守门的是一对大石狮.气势恢宏.学宫最大的建筑是大成殿,仿佛寺庙中的大雄宝殿.这是祭祀孔子的地方,东庑西庑是72高徒的宿舍.而今大成殿暂作古船陈列室,大成殿东庑主要是崇明知名人士的照片和事迹,还有一些崇明出土的古代器物.西庑是黄丕漠艺术馆.大成殿后的两幢

  • 植物大战僵尸2高手进阶心得技巧分享

    玩pvz2大家是不是都会把植物种得对称整齐?不知道吧,这是一种强迫症的表现,会使游戏失去很多的乐趣,尝试打破常规吧,你会发现更多奥义 1.在埃及地图笑到最后III关卡有个Bug,在前期准备阶段,植物放置错误是可以铲起来的,且所花费的阳光值也会跟着收回,所以这个时候你种植椰子炮,试点看看是不是可以发射?还等什么,快把所有的墓碑全部轰掉吧!(因为是准备阶段,一次炮击后cd是不会恢复的,所以必须铲掉重新种植)这个Bug大大降低了关卡难度,请慎用. 2.玩pvz2大家是不是都会把植物种得对称整齐?不知道

  • javascript组合使用构造函数模式和原型模式实例

    本文实例讲述了javascript组合使用构造函数模式和原型模式的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 function testPrototype2(){ function Person3(name, age, job){ this.name=name; this.age=age; this.job=job; this.friends =["shelb", "c

  • 三星手机G9098如何更改高级功能手表样式 三星手机G9098如何更改高级功能手表样式

    三星G9098支持高级功能手表设置.开启该功能后,当外屏处于锁屏状态时,双击[HOME]键可显示时钟.若想更改时钟的样式,请您按照以下方法操作 1. 在待机页面下,点击[应用程序]. 2. 选择[设定]. 3. 点击[我的设备]. 4. 选择[高级功能手表]. 5. 点击[手表样式]. 6. 选择其中一种风格,这里以[风格2]为例. 7. 选择完毕后,点击右下方的[应用]. 8. 完成以上设置后,在外屏锁屏时双击[HOME]键即可显示刚刚设置的时钟风格.

  • 不久前好忙

    最近好忙 最近无比的忙,感觉时间严重不够用:倒不是工作上的事多,而是忽然对很多事又来了兴趣. 看看最近在干的事情,bala,bala..... 看电视.新拍的<三国>.恩,我同意大众的评价:比老<三国演义>不如,但还可以看.主要是以前看<三国演义>的书看得十分过瘾,所以会继续看电视. 看科幻小说.突然又有了看科幻小说的兴趣,看了些短篇,现在正在看阿西莫夫的基地系列,已经看了一部<基地>.感觉不错,准备继续看这个系列,还会看看其他人的.现在都是直接用打印机打印

热门推荐