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;
}
本想用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;
}
相关文章推荐
- leetcode 14. Longest Common Prefix
- LeetCode Longest Common Prefix
- Leetcode 14 - Longest Common Prefix
- leetcode 14. Longest Common Prefix
- Leetcode Longest Common Prefix
- LeetCode 14 Longest Common Prefix 0ms实现的算法
- leetcode--Longest Common Prefix
- leetcode 14. Longest Common Prefix
- Leetcode Longest Common Prefix
- Longest Common Prefix LeetCode :Mysolution
- LeetCode-Easy-Java-Longest Common Prefix
- leetcode 14 Longest Common Prefix C++
- [leetcode]Longest Common Prefix
- leetcode第14题--Longest Common Prefix
- LeetCode 14 Longest Common Prefix
- LeetCode: Longest Common Prefix 解题报告
- 【LeetCode】Longest Common Prefix
- <LeetCode><Easy> 14 Longest Common Prefix
- leetcode: Longest Common Prefix
- [LeetCode]14. Longest Common Prefix