class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty())//字符串为空,则返回空的最长公共子串
return "";
else if(strs.size()==1)//字符串只有一个字符,则该字符为最长公共子串
return strs[0];
else
{
string rec="";//定义最长公共子串最初为空
int num=0;//num代表其中一个子串的第num个字符
char c=strs[0][num];//【0】可以理解为纵向对比,【num】为横向对比
while(true)
{
for(vector<string>::size_type st=0;st<strs.size();st++)
{
if(num<strs[st].size()&&strs[st][num]==c)
{
if(st==strs.size()-1)
{
rec+=c;
num++;
c=strs[0][num];
}
}
else
return rec;
}
}
}
}
};
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty())//字符串为空,则返回空的最长公共子串
return "";
else if(strs.size()==1)//字符串只有一个字符,则该字符为最长公共子串
return strs[0];
else
{
string rec="";//定义最长公共子串最初为空
int num=0;//num代表其中一个子串的第num个字符
char c=strs[0][num];//【0】可以理解为纵向对比,【num】为横向对比
while(true)
{
for(vector<string>::size_type st=0;st<strs.size();st++)
{
if(num<strs[st].size()&&strs[st][num]==c)
{
if(st==strs.size()-1)
{
rec+=c;
num++;
c=strs[0][num];
}
}
else
return rec;
}
}
}
}
};