描述
给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。
数据范围: 0 \le n \le 50000≤n≤5000, 0 \le len(strs_i) \le 50000≤len(strsi)≤5000
进阶:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)
示例1
输入:
["abca","abc","abca","abc","abcc"]
复制返回值:
"abc"
复制
示例2
输入:
["abc"]
复制返回值:
"abc"
// 这个办法需要排序vector
class Solution {
public:
string longestCommonPrefix(vector<string> &strs)
{
if(strs.size()== 0)
return "";
sort(strs.begin(),strs.end());
string small = strs[0],large = strs.back();
int index = 0,len = min(small.length(),large.length());
for(;index<len;index++)
{
if(small[index] != large[index])
break;
}
return large.substr(0,index); // 注释,此处index多移动了一步
}
};