美文网首页
[String]14. Longest Common Prefi

[String]14. Longest Common Prefi

作者: Reflection_ | 来源:发表于2017-10-24 16:03 被阅读0次

题目: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。

相关文章

网友评论

      本文标题:[String]14. Longest Common Prefi

      本文链接:https://www.haomeiwen.com/subject/wkfxpxtx.html