采用的是比较传统的解法。这里需要注意substr(0,i+1),这里截取的是0->i个元素。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0) return "";
int min_length = strs[0].length();
int i = 0;
int j = 0;
for(i = 1; i < strs.size(); i++){
if(strs[i].length() < min_length) min_length = strs[i].length();
}
//cout << "min_length is:" << min_length <<endl;
string base_string = strs[0];
for(i = 0; i<min_length;i++){
for(j = 1; j <strs.size(); j ++){
if (strs[j][i] != base_string[i])
break;
}
//cout << "j is:" << j << endl;
if(j != strs.size() ) break;
}
i -= 1;
if (i == -1)
return "";
else
return base_string.substr(0,i+1);
}
};
本文深入探讨了一种用于寻找字符串数组中所有字符串的最长公共前缀的传统算法。通过详细解释代码逻辑,包括确定最短字符串长度、逐字符比较以及返回最长公共子串的过程,帮助读者理解其实现原理。
305

被折叠的 条评论
为什么被折叠?



