14. Longest Common Prefix

直接做的,一个一个比较。。

Time: O(n*k)
Space: O(1)

public class Solution {
    public String longestCommonPrefix(String[] strs) {
        if (strs.length == 0) return "";
        String prefix = strs[0];
        
        for (int i = 0; i < prefix.length(); i++) {
            for (int j = 1; j < strs.length; j++) {
                if (i >= strs[j].length() || prefix.charAt(i) != strs[j].charAt(i)) {
                    return prefix.substring(0,i);
                }
            }
        }

        return prefix;
    }
}

回头看一刷的做法,很奇怪。。。

先排序了一下,然后直接比较第一个和最后一个。。

Time: O(nlgn)
Space: O(1)

public class Solution {
    public String longestCommonPrefix(String[] strs) 
    {
        if(strs.length == 0) return "";
        if(strs.length == 1) return strs[0];
        
        
        Arrays.sort(strs);
        String str1 = strs[0];
        String str2 = strs[strs.length-1];
        String res = new String();
        int i = 0;
        while(true)
        {
            if(i < str1.length() && str1.charAt(i) == str2.charAt(i))
            {
                res = res + str1.substring(i,i+1);
                i++;
            }
            else break;
        }
        
        return res;
    }
}
posted @ 2016-11-06 13:03  哇呀呀..生气啦~  阅读(65)  评论(0)    收藏  举报