您的位置:首页 > 其它

leetcode——Longest Common Prefix 最长公共前缀(AC)

2014-06-08 16:19 441 查看
Write a function to find the longest common prefix string amongst an array of strings.

其实做起来会感觉很简单,需要注意的是要考虑效率的问题,毕竟可能是很长的字符串数组,所以可以考虑选取所有字符串中最短的那个来首先进行比较,因为最长公共子串肯定不会大于其长度,这样避免了字符串之间长度差异很大造成的效率损失,然后每次比较之后最长公共子串的长度也永远不会大于最短的那个字符串,只会不变或减小,只要遍历字符串数组,挨个对比、更改最短公共字符串记录即可,code如下:

string s = "";
if(strs.empty())
return s;
int len = strs.size();
int sLen = 0;
int i=0, j=0;
for(i=0; i<len; i++)
{
if(sLen < strs[i].size())
{
s = strs[i];
sLen = strs[i].size();
}
}
for(i=0; i<len; i++)
{
for(j=0; j<sLen; j++)
{
if(s[j] != strs[i][j])
break;
}
s = s.substr(0, j);
sLen = s.size();
}
return s;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息