从左到右,每两个字符串求一次公共前缀prefix,prefix再和下一个字符串求公共前缀,一直到最后前缀不同返回prefix。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty())//空
return "";
if(strs.size()==1)//一个字符串
return strs[0];
string prefix=strs[0];//两个及以上字符串
for(int i=0;i<strs.size();i++){
int lastIndex=min(prefix.size(),strs[i].size());
for(int j=0;j<lastIndex;j++){
if(prefix[j]!=strs[i][j]){
lastIndex=j;
break;
}
}
prefix=prefix.substr(0,lastIndex);
}
return prefix;
}
};