您的位置:首页 > 其它

Longest Common Prefix —— Leetcode

2015-03-31 10:29 204 查看
Write a function to find the longest common prefix string amongst an array of strings.

本想用C++写,但想想太没挑战性,干脆直接用C。下面是代码,然而,和很多leetcoder提交的答案一样,在[""]这个测试用例下卡住了,不知为何。

方法很简单,就是所有字符串从第一个开始向后遍历,直到有不一样的,即为公共前缀,下面是C代码:

char *longestCommonPrefix(char *strs[], int n) {
if(n == 0) return "";
if(n == 1) return strs[0];

int end_flag = 0;
int i=0, j=0;

while(!end_flag)
{
for(i=0; i<n-1; i++)
{
if(strs[i][j]=='\0' || strs[i][j]!=strs[i+1][j])
{
end_flag = 1;
break;
}
}
j++;
}
char *prefix = (char *)malloc(j*sizeof(char));
strncpy(prefix, strs[0], j-1);
prefix[j-1] = '\0';
return prefix;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: