题目描述
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
输入:strs = ["flower","flow","flight"]
输出:"fl"
- 我们能够找出两个字符串的公共前缀,只要循环一下即可。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==1){
return strs[0];
}
string res = getPrefix(strs[0],strs[1]);
for(int i=2;i<strs.size();i++){
res = getPrefix(res,strs[i]);
}
return res;
}
string getPrefix(string a,string b){
int maxStep = min(a.size(),b.size());
for(int i=0;i<maxStep;i++){
if(a[i]!=b[i]){
if(i==0)return "";
else{
return a.substr(0,i);
}
}
}
return a.substr(0,maxStep);
}
};