题目
https://leetcode-cn.com/problems/longest-common-prefix/
解决方案
string longestCommonPrefix(vector<string>& strs) {
int res = 0;
// 空
if(strs.empty())
return "";
for(int j = 0; j < strs[0].size(); j++)
{
int i = 0;
for(;i< strs.size(); i++)
{
if(j < strs[i].size() && strs[i][j] == strs[0][j])
{
continue;
}
else
{
if(j == 0)
return "";
break;
}
}
if(i == strs.size())
res++;
else
break;
}
return strs[0].substr(0,res);
}
复杂度分析
- 时间复杂度 O ( m ∗ n ) O(m*n) O(m∗n),最好时间复杂度为 O ( m i n L e n ∗ n ) O(minLen * n) O(minLen∗n),即最短的字符串常度。
- 空间复杂度 O ( 1 ) O(1) O(1) 没有占用额外空间
注意点
- 子字符串截取函数substr(int p0, int p),截取 p 0 p_0 p0和 p p p之间的字符串