最长公共前缀
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例
示例 1:
输入: [“flower”,“flow”,“flight”] 输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
思路
首先遍历数组找到最短的字符串,然后以它的长度为界,将数组中每个字符串的字母逐个比较,若相同加入ans,不同立刻返回。
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs)
{
string ans="";
if(strs.empty()) return ans;
int arr=strs.size();
string min=strs[0];
for(int i=1;i<arr;++i)
{
if(strs[i].size()<min.size())
{
min=strs[i];
}
}
for(int j=0;j<min.size();++j)
{
for(int k=0;k<arr;++k)
{
if(min[j]!=strs[k][j])
{
return ans;
}
}
ans=ans+min[j];
}
return ans;
}
};