美文网首页
[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