Write a function to find the longest common prefix string amongst an array of strings.
思路:利用递归来实现
代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs){
if(strs.size() == 0){
return "";
}
string prefix = "";
for(int i = 0; i < strs.size(); ++ i){
if(strs[i].size() == 0)
return "";
}
for(int i = 0; i < strs.size()-1; ++ i){
if(strs[i][0] != strs[i+1][0])
return "";
}
prefix.append(strs[0].begin(),strs[0].begin()+1);
vector<string> substrs(strs.size());
for(int i = 0; i < strs.size(); ++ i){
if(strs[i].size() > 1){
substrs[i] = (strs[i].substr(1));
}else{
substrs[i] = "";
}
}
string subprefix = longestCommonPrefix(substrs);
prefix.append(subprefix);
return prefix;
}
};