一、题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:
["flower","flow","flight"]
输出:"fl"
示例 2:
输入:
["dog","racecar","car"]
输出:""
解释: 输入不存在公共前缀。
链接:https://leetcode-cn.com/problems/longest-common-prefix
二、题解
有两种方式:横向遍历和纵向遍历,时间复杂度为O(mn)
,其中n
为字符串数组的长度,m
为字符串的平均长度。
这里采用的是横向遍历。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs)
{
if(strs.empty()) return "";
string ret=strs[0];
int len=strs.size();
for(int i=0;i<len;i++)
{
string tmp=strs[i];
int j=0;
while(ret[j]==tmp[j]&&j<tmp.size()&&j<ret.size())
{
j++;
}
if(j==0) return "";
ret.erase(j);
}
return ret;
}
};