题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
解答
正确
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len=strs.size();
if(len==0) return "";
for(int j=0;j<strs[0].size();j++){
for(int i=1;i<len;i++){
if(strs[0][j]!=strs[i][j]){
return strs[0].substr(0,j);
}
}
}
return strs[0];
}
};
错误
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len=strs.size();
if(len==0) return "";
int min=INT_MAX;
int minx=0;
for(int i=0;i<len;i++){
if(strs[i].size()<min){
min=strs[i].size();
minx=i;
}
}
for(int j=0;j<min;j++){
for(int i=0;i<len&&i!=minx;i++){
if(strs[minx][j]!=strs[i][j]){
return strs[minx].substr(0,j);
}
}
}
return strs[minx];
}
};