个人思路总结:
我们先找出所有字符串的最短长度(因为公共前缀的长度肯定会小于等于该最短长度)。然后依次比较每个字符串的每一个字符。一旦碰到不相等的字符,则直接输出当前公共前缀。(即从下标0开始,判断每一个字符串的下标0,判断是否全部相同。直到遇到不全部相同的下标)
代码如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty())
return "";
if(strs.size()==1)
return strs[0];
string result = "";
int min_len = strs[0].size();
for(int m=1;m<strs.size();m++)
{
if(strs[m].size()<=min_len)
min_len = strs[m].size();
}
for(int i=0;i<min_len;i++)
{
for(int j=1;j<strs.size();j++)
{
if(strs[0][i]!=strs[j][i])
return result;
}
result += strs[0][i];
}
return result;
}
};