M1:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int num=strs.size();
if(num==0) return "";
if(num==1) return strs[0];
int min_len=strs[0].length();
int i=0;
for(i=1;i<num;++i){
if(min_len<strs[i].length()){
min_len=strs[i].length();
}
}
for(i=0;i<min_len;++i){
char c=strs[0][i];
for(int j=1;j<num;++j){
if(strs[j][i]!=c){
return strs[0].substr(0,i);
}
}
}
return strs[0].substr(0,i);
}
};
M2:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return "";
string str = strs[0];
for(auto s : strs){
string a = "";
for(int i=0; i<str.size()&&i<s.size(); i++){
if(str[i]==s[i]) a+=str[i];
else break;
}
str = a;
if(a=="") break;
}
return str;
}
};