编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
class Solution {
public:
//思路 两两比较返回最长前缀
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0)
{
return "";
}
string prefix = strs[0];
for(int i = 1; i < strs.size(); i++)
{
prefix = longestCommonPrefix(prefix, strs[i]);
if(!prefix.size())
{
break;
}
}
return prefix;
}
string longestCommonPrefix(const string& str1, const string& str2)
{
int index = 0;
int ncount = min(str1.size(), str2.size());
while(index < ncount && str1[index] == str2[index])
{
index++;
}
return str1.substr(0, index);
}
};