problem:
Write a function to find the longest common prefix string amongst an array of strings.寻找 0 ~n 个字符串的最长公共前缀
thinking:
(1)公共前缀很好理解,按位匹配即可
(2)很容易忘记处理0、1个字符串的情况。
code:
string prefix(string &str1, string &str2)
{
string tmp;
int i=0;
while((i<str1.size())&&(i<str2.size())&&(str1.at(i)==str2.at(i)))
{
tmp.push_back(str1.at(i));
i++;
}
return tmp;
}
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
if(strs.size()==0)
return "";
if(strs.size()==1)
return strs.at(0);
string result=prefix(strs.at(0),strs.at(1));
for(int i=1;i<strs.size();i++)
{
result=prefix(strs.at(i),result);
}
return result;
}
};
本文介绍了一种寻找多个字符串中最长公共前缀的算法实现。通过逐字符对比的方法找到任意两个字符串间的最大相同前缀,并迭代此过程直至所有字符串被比较完毕。特别地,文章考虑了输入为空或只有一个字符串的情况。
698

被折叠的 条评论
为什么被折叠?



