Write a function to find the longest common prefix string amongst an array of strings.
简单思路,先获得第一个字串,比较个字串,比较后的结果作为下次比较的输入。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len=strs.size();
if(len==0)
return "";
string s=strs[0];
for(int i=1;i<len;i++){
s=compare(s,strs[i]);
}
return s;
}
string compare(string a,string b){
string str="";
if(a==""||b==""){
return str;
}
int len=a.length()>b.length()?b.length():a.length();
for(int i=0;i<len;i++){
if(a[i]==b[i]){
str+=a[i];
}else{
break;
}
}
return str;
}
};
2,string数组相当于一个二维数组,对数组每一列遍历,若某一列出现不同则前面所有列均为相同
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len=strs.size();
if(len==0)
return "";
int l=strs[0].length();
for(int i=0;i<l;i++){
for(int j=0;j<len;j++){
if(strs[j]==""){
return "";
}
if(strs[0][i]!=strs[j][i]){
return strs[0].substr(0,i);
}
}
}
return strs[0];
}
};