Write a function to find the longest common prefix string amongst an array of strings.
Python:
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == 0: #如果数组中不包含任何字符串,则返回空字符串
return ''
res = ''
min_len = len(strs[0])
for i in strs:
min_len = min(min_len,len(i))
#计算出所有字符串的最短长度
for i in range(min_len):
ch = strs[0][i]
#将第一个字符串中的每一个字符依次赋值给ch
for j in range(1,len(strs)):
#将所有字符串的对应位置的字符与之比较,如果有一个不相同的字符,则返回res
return res
res += ch
#如果所有的该对应位置的字符都相同,则将该字符加入到res中
return res
C++:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res = "";
//如果strs.size()== 0,不进行循环,返回空字符串。
//当当前字符所在的位置超过某字符串的长度,或者字符不相同,返回res。
for (int i = 0;strs.size() > 0;++i ){
for (int j = 0;j<strs.size();++j){
if (i > strs[j].size() || (j > 0 && strs[j][i] != strs[j-1][i]))
return res;
}
res += strs[0][i];
}
return res;
}
};