题目描述
Write a function to find the longest common prefix string amongst an array of strings.
解题思路
因为题目要求的是求所有字符串的最长匹配前缀,那么把每一个字符串都来比较,然后从已经比较得到的前缀中截取就可以了。但是这样比较的话就有n(n-1)次,但是要求每个字符串都有的前缀,其实只需要将数组中的字符串扫描一遍,然后逐个比较就可以了。
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==0) return "";
int n=strs.size();
string compare=strs[0];
for(int i=1;i<n;i++){
int k=0;
while(k<compare.size()&&k<strs[i].size()){
if(strs[i][k]!=compare[k]) break;
k++;
}
compare=compare.substr(0,k);
}
return compare;
}
};