题解
way 1.
先将数组排序,那么最长公共前缀就是数组中的第一个和最后一个字符串的最长公共前缀。
public class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs == null || strs.length == 0) return "";
Arrays.sort(strs);
String s1 = strs[0];
String s2 = strs[strs.length - 1];
StringBuilder ret = new StringBuilder();
for(int i = 0; i < s1.length(); ++i){
if(s1.charAt(i) == s2.charAt(i)) ret.append(s1.charAt(i));
else return ret.toString();
}
return ret.toString();
}
}
way 2.
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if not strs:
return ""
res = strs[0]
for s in strs:
l = len(res)
while s[:l] != res[:l]:
l -= 1
res = s[:l]
return res