Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.
找出字符串数组中字符串的最大共同前缀。
分析:
只需要将前两个字符串比较找出最大共同前缀,然后使用共同前缀再和其他字符串比较,这样就只需要比较前缀部分。
注意:如果遇见空的字符串就可以直接返回空字符串,不需要再比较。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty())//空
return "";
string prefix = strs[0];
int vsize = strs.size();
int slen1 = 0, slen2 = 0; //两个比较字符串长度
int sindex = 0;
int vindex = 1;
while(vindex < vsize)
{
if(strs.at(vindex).empty()) //存在空字符串返回空
{
return "";
}
slen1 = prefix.length(); //已比较字符串共同前缀长度
slen2 = strs.at(vindex).size();
for(sindex = 0; sindex < slen1 && sindex < slen2; ++sindex)
{
if(prefix[sindex] != strs.at(vindex)[sindex])
break;
}
prefix = prefix.substr(0, sindex);
++vindex;
}
return prefix;
}
};