最长公共前缀
题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
思路
直接进行比较,建立数组保存字符数组中每个字符串的长度,以最小的字符长度作为外层循环来进行判断。
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string str;
if(strs.empty())
return str;
str="";
vector<int> len;
for(int i=0;i<strs.size();i++)
{
len.push_back(strs[i].size());
}
auto minloc=min_element(len.begin(),len.end());
int minlen=*minloc;
for(int j=0;j<minlen;j++)
{
for(int i=0;i<strs.size()-1;i++)
{
if(strs[i][j]!=strs[i+1][j])
{
return str;
}
}
str+=strs[0][j];
}
return str;
}
};