题目14:
Write a function to find the longest common prefix string amongst an array of strings.
在一组字符串中,查找最长的公共前缀,并输出。
从第一个字符,依次遍历所有字符串,如果第一个字符都相同,则添加到结果中;
直到遍历到不同字符,或某一字符串遍历结束,则输出结果。
char* max_prefix = NULL;
char* longestCommonPrefix(char** strs, int strsSize)
{
int i = 0;
int j = 0;
char temp = 0;
max_prefix = (char*)malloc(1000); /* 存放结果 */
if (strsSize == 0)
{
return "";
}
/* 从每个字符串的第一个字符开始遍历,如果全都有相同字符,填充到结果
有一个不同,或某一个字符串遍历结束,则输出结果
j:遍历到的字符下标
i:字符串下标
*/
while (1)
{
if (strs[0][j] == 0)
{
break;
}
temp = strs[0][j];
for (i = 1; i < strsSize; i++)
{
if (strs[i][j] == 0 || strs[i][j] != temp)
{
max_prefix[j] = 0;
return max_prefix;
}
}
max_prefix[j] = temp;
j++;
}
max_prefix[j] = 0;
return max_prefix;
}