您的位置:首页 > 其它

leetcode: Longest Common Prefix

2013-11-23 13:11 309 查看
Write a function to find the longest common prefix string amongst an array of strings.

思路

两个两个的比较,然后递归。

class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
if(strs.size()==0) return "";
if(strs.size()==1) return strs[0];
vector<string> rstrs;
char *buff = new char[strs[0].length()+1];
int mleng=strs[0].length();
for(int i=0;i<strs.size();i+=2)
{
if(i+1<strs.size())
{
mleng=minnum(strs[i].length(),strs[i+1].length(),mleng);
memset(buff,0,strs[0].length()+1);
for(int j=0;j<mleng;j++)
{
if(strs[i][j]==strs[i+1][j])
buff[j]=strs[i][j];
else
break;
}
string tmp(buff);
rstrs.push_back(tmp);
}
else
{
string tmp(strs[i]);
rstrs.push_back(tmp);
}
}
delete[] buff;
return longestCommonPrefix(rstrs);
}

inline int minnum(int a, int b, int c)
{
int tmp=a<b?a:b;
return tmp<c?tmp:c;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: