Write a function to find the longest common prefix string amongst an array of strings.
class Solution {
int maxCountLength(string &a,string &b,int minLength){ //返回两个字符串的前缀长度,minLength表示上一次比较结果的前缀长度
int count=0;
for(int i=0,j=0;i<minLength;++i,++j){
if(a[i]==b[j])
++count;
else
break;
}
return count;
}
public:
string longestCommonPrefix(vector<string>& strs) {
string maxString;
if(strs.empty())
return maxString;
int size;
if((size=strs.size())==1)
return strs[0];
int maxCount=min(strs[0].length(),strs[1].length()); //maxCount用来表示两个字符串的前缀长度
for(int i=0;i<size-1;++i){
maxCount=maxCountLength(strs[i],strs[i+1],maxCount); //maxCount不断更新(减小),直到到达所有字符串共有的前缀长度
if(maxCount==0)
return string();
maxString=strs[i].substr(0,maxCount);
}
return maxString;
}
};