最长公共前缀 找到最短串然后一个个字符比较 - lifengyu360/lifengyu_first_git_test GitHub Wiki
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。 示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string result;
if (strs.size() == 0){
return result;
}
if (strs.size() == 1){
return strs[0];
}
int min_index = 0;
//找到最短串
int min_length = strs[0].length();
for (int i = 1; i < strs.size(); i++) {
if (strs[i].length() < min_length) {
min_index = i;
min_length = strs[i].length();
}
}
string min;
min = strs[min_index];
bool b_eq =false;
for (int j = 0; j < min.length(); j++){
b_eq = true;
for (int i = 0; i < strs.size(); i++){
if (min[j] != strs[i][j]){
b_eq = false;
break;
}
}
if (b_eq){
result += min[j];
}else {
return result;
}
}
return result;
}
};