题目描述:求一个字符串列表的最长公共前缀;
解题思路:将列表的第一个字符串与后面的字符串比较,逐个子符串的逐个字符比较,直到不一样为止;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs)
{
string ret;
if(strs.size() == 0)
return ret;
for(int i = 0; i < strs[0].length(); ++i)
{
for(int j = 1; j < strs.size(); ++j)
{
if(i > strs[j].size() || strs[0][i] != strs[j][i])
return ret;
}
ret.push_back(strs[0][i]);
}
return ret;
}
};
//20180702更新
//思路与之前相同,python实现
class Solution:
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
ret = ""
n = len(strs)
if(n == 0):
return ret
strs1 = sorted(strs)
head_len = len(strs1[0])
tail_len = len(strs1[n - 1])
m = min(head_len, tail_len)
for j in range(m):
if(strs1[0][j] == strs1[n - 1][j]):
ret += strs1[0][j]
else:
break
return ret