- 题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例
输入: [“flower”,“flow”,“flight”]
输出: “fl”
- c++代码
string solve(vector<string>& strs,int i){
int j=0;
if(strs[j].length()<i+1) return "";
for(;j<strs.size()-1;j++){
if(strs[j].length()<i+1||strs[j+1].length()<i+1) return "";
if(strs[j][i]!=strs[j+1][i]) return "";
}
return strs[j][i]+solve(strs,i+1);
}
string longestCommonPrefix(vector<string>& strs) {
if(strs.size()==0) return "";
return solve(strs,0);
}
时间复杂度:O(s),s为字符总数。
题目链接
https://leetcode-cn.com/problems/longest-common-prefix