[String]14. Longest Common Prefix

题目:14. Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.
找出字符串数组的最长共同前缀。
比如:
"abcdefg"
"abcdefghijk"
"abcdfghijk"
"abcef"
上面的字符串数组的最长公共前缀就是"abc"。

class Solution {
    public String longestCommonPrefix(String[] strs) {
        String res ="";
        int n = strs.length;
        if(n == 0) return res;
        int minLen = strs[0].length();
        for(int i = 1; i<n ;i++){
            minLen = Math.min(minLen, strs[i].length());
        }
        for(int j= 0; j<minLen ; j++){
            for(int k =1; k<n; k++){
                if(strs[k-1].charAt(j) != strs[k].charAt(j)) return res;
            }
            res = res + strs[0].charAt(j);
        }
        return res;
    }
}

solution里的优秀解更短:

class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) return "";
        String res = strs[0];
        for (int i = 1; i < strs.length; i++) {
            while (!strs[i].startsWith(res)) res = res.substring(0, res.length() - 1);
        }
        return res;    
    }
}

这里的strs.startsWith方法:

startsWith是String类中的一个方法,用来检测某字符串是否以另一个字符串开始,返回值为boolean类型如:
String a = "abcd";
String p = "abc";
Boolean b = a.startsWith(p);则b就为true.
如果p的值为“”空字符串,(即a.startsWith(""),)则也是返回true。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • java中String的常用方法 1、length()字符串的长度 例:char chars[]={'a','b'...
    赤赤有名阅读 2,114评论 0 10
  • String类 1、String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,...
    简诗阅读 414评论 0 1
  • 在编写程序的过程中,不了避免的要用到字符串,所以String类的常用方法的用法是必须掌握的。学习一个类的使用方法最...
    Geg_Wuz阅读 1,318评论 0 4