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;
}
}

浙公网安备 33010602011771号